Bamboo的custom操作API
程序员文章站
2022-05-19 18:17:46
...
为了在封装性与灵活性之间做出权衡,Bamboo设计了一套完整的的自定义k-v存储接口,用户在特定情况下,可以方便地使用它们。
先列出API吧,再讲解一下设计和使用。
注意:
1. 虽然说custom支持string, list, set, zset四种存储结构,但每种结构最基本的单元还是一个字符串,在设计的时候要考虑。
2. 尽量不要使用纯数字作为key参数,名字尽量取有意义一点的好。
在内部,custom key是被限制在Model_name下面的。也就是说,不存在独立的custom key,总是需要依附某一个model而存在。比如说,
如果实在找不到要用到的custom key与哪一个模型有关联,就用Model模型吧。
将custom key限制在某一个模型名字空间下面,是为了防止滥用custom key,尽量少用为好。
custom API可用于记录一些模型相关的属性在数据库中。
先列出API吧,再讲解一下设计和使用。
API method | 说明 |
Model_name:setCustom(key, val, st) | 创建一个custom key,将val值写入此key中。val可以为string, list, st只能取nil, 'string', 'list', 'set', 'zset' 中的一个 |
Model_name:getCustom(key) | 获取custom key的所有内容 |
Model_name:delCustom(key) | 删除此custom key |
Model_name:updateCustom(key, val) | 将val值更新到custom key中去,注意,是覆盖关系 |
Model_name:removeCustomMember(key, val) | 删除custom key中的val元素 |
Model_name:addCustomMember(key, val) | 添加一个member到custom key中去 |
Model_name:numCustom(key) | 测量custom key的值的长度 |
注意:
1. 虽然说custom支持string, list, set, zset四种存储结构,但每种结构最基本的单元还是一个字符串,在设计的时候要考虑。
2. 尽量不要使用纯数字作为key参数,名字尽量取有意义一点的好。
在内部,custom key是被限制在Model_name下面的。也就是说,不存在独立的custom key,总是需要依附某一个model而存在。比如说,
User模型,使用 User:setCustom('test', 'have a test') 后,在redis中存储的key是 User:custom:test, 值为'have a test'
如果实在找不到要用到的custom key与哪一个模型有关联,就用Model模型吧。
执行 Model:setCustom('test', 'have a test') 后,在redis中存储的key是 Model:custom:test, 值为'have a test'
将custom key限制在某一个模型名字空间下面,是为了防止滥用custom key,尽量少用为好。
custom API可用于记录一些模型相关的属性在数据库中。
上一篇: Ubuntu 使用dhcp不覆盖/etc/resolv.conf
下一篇: PHP代码审计
推荐阅读
-
微信小程序异步API为Promise简化异步编程的操作方法
-
Django视图之ORM数据库查询操作API的实例
-
Web API---DOM---元素相关的操作方法
-
RESTful API批量操作的实现
-
HDFS常用API操作 和 HDFS的I/O流操作
-
使用SVG基本操作API的实例讲解
-
HBase常用的JAVA API操作
-
基于.net EF6 MVC5+WEB Api 的Web系统框架总结(4)-Excel文件读、写操作
-
MongoDB Java API操作很全的整理
-
RocketMQ-初体验RocketMQ(06)-使用API操作RocketMQ( Simple Message),理解RocketMQ的存储结构