Cache学习(二)

SALTEST-FISH / 2023-07-25 / 原文

  • cache的存储结构

cache以多维数组存储数据,所有数据保存在Global中。

cache可以通过两种方式存放:

  •  cache的变量结构

 

Local variables:普通变量,当前进程内有效的变量。

Process-private global variables:进程私有Global是当前进程中创建的,所有命名空间都快可以访问,进程结束时,进程私有Global也被清除。

Global variables:是特殊进程变量,以^开头,自动创建并存储在Cache数据库中。

special variables:特殊变量.......后面了解。

global支持事务回滚,其他变量不支持也不会有日志。

 

  • 常见cache语法

set:可以简写为s,对变量或者多维数组赋值。

s a=1,b=2,c=3

s:a>2 d=5 //if a>2 d=5

 

do:简写d,执行某一操作。一般是执行类方法。

d ##class(web.DHCATEST).test()
d:rowid>0 ##class(User.Classname).%DeleteId(rowid) //:一般是跟判断条件

 

kill:简写k,清楚变量或者Global,谨慎使用。

k n(1)

k ^TMP("myglobal")

 

//用法二

s a=1

s b=2

s c=3

kill(a,b) //除去ab外的变量

 

write:输出变量或表达式的值。

s str="a"

w str //输出str的值

w !,str //换行输出

 

zw:输出变量或表达式的值及其子节点值

zw ^ARC

 

Quit:简写q退出程序或者循环,quit可以返回一个值,在类方法中可以把结果quit出来。

 

Break:简写为b,终止程序,用于断点调试。

 

注释:// /**/

  • Global的存储位置

Global以^名称(下标1,下标2,下标3...)

^Airplane("Mannufacturer","Address","Country")="US"

可以自己定制Global,包括添加、删除、修改、遍历其节点。多维数组以树状形式保存,他的每一个节点都直接与磁盘和内存中的数据块相对应,因此可以达到极快的访问速度。在此基础上,将多维数组映射成对象或者关系型的格式,分别由面向对象的接口或者基于SQL的接口进行访问。

 

以下图为例,0处为主键索引,code存储主键数据,主键下子树是索引,根据索引在第一层中可以取出对应字段。数据都是按串存储。

 

  •  查看Global的数据——两种方法

  1.  terminal下查询:zw ^CT("TTL")
  2. Portal下查询:资源管理器-global-搜索。
  3. 使用sql查询自动将串解析为列表。sql存储中将节点定义为列名。
  • FDBMS------传统数据库管理系统查看查询操作

可以在terminal下利用FDBMS查看表结构

 

  • cache开发环境、工具介绍

 

 也支持global查看,但切换库速度过慢。