Bamboo的custom操作API

为了在封装性与灵活性之间做出权衡,Bamboo设计了一套完整的的自定义k-v存储接口,用户在特定情况下,可以方便地使用它们。

先列出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可用于记录一些模型相关的属性在数据库中。

猜你喜欢

转载自daogangtang.iteye.com/blog/1117291