多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
**重要:以下所有函数的key参数,如果非感叹号"!"开头,视为临时数据,进程退出后会丢失。** * * * * * ### zx.set(key,dat); 存储键值数据(永久数据key必须用"!"开头,下同)。dat 可以是数值、字符串、布尔值、空值、未定义值以及一元或多元数组,读取时能够正确还原 key不能大于16K字节,dat 不能 大于等于 64K字节(由于字母是双字节存储,所以 字串.length 应小于32K,如果还有数组等情况也需要考虑减少长度),如果超出长度会返回 flase ,不会改变原有数据; 删除数据:zx.set("key");//相当于zx.set("key",undefined),可把"key"数据删除 ### zx.setcopy(key1,key2); 批量复制键值数据。例:zx.setcopy("kkk","!ttt");//把kkk*(所有kkk开头的临时键值,不包括kkk本身) 复制到 !ttt*(永久键值) 限制:根key("")不能复制或被复制;有包含关系的目录之间也不能复制。 ### zx.setdel(key); 删除所有以 key 为前缀的值,包括 key 本身的值,返回删除数量; 这是批量删除,请谨慎使用。 ### zx.get(key); 读取数据;如果数据不存在,返回 undefined ### zx.setget(key,dat); 设置新数据并返回原有数据;是原子操作,不会出现两个线程同时设置数据而没有正确返回原有数据。但是要留意当返回值为 flase 时,无法区分这是原有值还是操作失败。 ### zx.getlist(key,列取数量,[true:flase],[前缀匹配长度]) 批量 zx.get(),但不包括key本身;[true:flase]指定结果是否包含数据;前缀匹配长度是指列取的key必须与参数key前端指定长度相同(注意1个中文字符的长度是3)。 例如有数据:["aaA001","aaB01","aaB005","aaB006","aaB1","aaBC","aaD","bb"]; zx.getlist("aaB005",100,false,3)的结果是 ["aaB006","aaB1","aaBC"], 前缀匹配字串是"aaB; zx.getlist("aaB1",100) 的结果是 ["aaBC","aaD","bb"],因为不设前缀匹配,"b"排在"a"的后面,所以也列出来了; ### zx.incr(key,[i]); 对 key 对应数值相加,返回相加结果。如果不带 i 参数,则清零,并返回原值。 数值范围为32位整数,超出此范围会溢出截断。 读取数值用 zx.incr(key,0);删除数值用 zx.incr(key);读取不存在的 key 返回 0; ### zx.incr64(key,[i]); zx.incr()的64位版本,与32位版数值是同步的,对32位版数值操作会自动升级为64位。 注意1:如果用32位版操作64位版数值,数值会回退为32位,造成精度丢失。 注意2:由于JS语言精确整数只支持到52位,超过此范围返回的结果是不精确的(近似值)。 ### zx.arr(key,[id],[dat],[true]); 加入整数(id)集合;key是集合名;id是一个32位正整数;dat是字符串。 一个集合由若干个id项组成,一个id项对应一个dat,需要在集合中加入一个id项,只要把对应的dat设置为非空字串即可;同样,删除一个id就是把对应dat设为空字串("")。 * 带前2个参数 仅读取此 集合 中 某个id 的 dat * 带前3个参数 加入或删除一个id,如果此id原来已存在,返回true,否则返回false,写入失败(存储空间用尽或key/dat长度过长)返回undefined; * 第4个参数为true 加入或删除一个id,并返回此id原来的dat. ### zx.arradd(key,id,dat,[true]); 此方法同等于 zx.arr(key,id,dat,[true]); ### zx.arrdel(key,[id],[true]); 删除一个id,及是否返回原有内容。如果只带一个key参数,则删除此key的所有id。 此方法同等于 zx.arradd(key,id,'',[true])。 ### zx.arrlist(key,[id],[数量],[true]); 列取集合中若干数量的id; id为起始id,结果中包含此id;数量不大于10000,需要反向列取可以设为负数;true 表示结果中需要包含 dat。 * 带前俩个参数 查询此id是否存在,返回true或false; * 只带key参数 如果只带key参数,则查询并返回下一个有效的key。 ### zx.arrdatcat(key,id,dat,[true]); 往集合中某id项追加数据,true参数表示是否返回原数据,如果不需要返回原数据则成功返回true,失败返回undefined。如果结果长度等于或超过64K字节(32K字符)则追加失败,返回undefined ,但不会改变原有数据。 ### zx.mapadd(key,item); 加入字串(item)集合(并更新这个item的时间);key是集合名,item 是需要加入的项,是一个字符串。 如果item已存在,返回上次加入(或上次更新)时间。 与整数集合不同,字串集合由若干个item(字符串)组成,即使item是数字也会自动转换为字串(而且arr比map效率高),每个item没有对应的数据,但是有一个隐含的时间值。 ### zx.mapdel(key,[item]); 删除集合中的某项或删除全部(不带item参数时); ### zx.maplist(key,[item],[数量],[true]); 列取集合中若干数量的 item; item为起始项,结果不包含此项;数量不大于10000,不能设为负数;true 表示结果中需要包含项时间。 * 带前两个参数 查询此item 是否存在,返回true 或 false; * 只带key参数 如果只带key参数,则查询并返回下一个有效key。