Cache学习(二)Cache存储

  • 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"

Mannufacturer节点下的Address节点的Country节点的值是US

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

 

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

练习:

 

  • 存储结构

数据实际是存在第一层,最后一层只是索引并且赋值为空

查看存储定义,cache中通过类实现数据存储

1.存储结构第一层

下图指明一个数据存储结构,该结构存储data(数据),索引命名为DataMasterCTSEX,CT_SEX表存储在^CT下

下图定义两层节点,第一层节点为sex,第二层节点存储表的主键RowId

下图指明CTSEX_RowID是在第二层并且是主键

 

2.存储结构第二层:

下图指明存储结构的索引结构,指明结构是索引结构,索引不需要加DATA

下图指明索引结构的节点值:

第四层获取CTSEX_Code,第五层主键rowid

下图为指明主键名以及值表达式,定义了sex,0的值。$i代表自增主键

开发工具输入类名称查看结构:

  • data存在^CT("SEX",{CTSEX_RowId})中
  • piece指取出数据使用$peice截取字符串时分隔第几个位置,plist指sql查询中列的顺序
  • field指数据库表的列名

3.查看表结构顺序为:

  • 首先打开类知道表的列顺序(SqlColumnNumber),列名(SqlFieldName)是什么
  • 然后查看存储定义(sqlstorage)
    查看存储在哪个global下
    然后查看global节点
    然后查看节点位置
  •  查看Global的数据——两种方法

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

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

 

  • cache开发环境、工具介绍

 

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

 

posted @ 2023-07-25 15:26  HY10-SALTEST-FISH  阅读(213)  评论(0编辑  收藏  举报