Bamboo的custom操作API

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

先列出API吧,再讲解一下设计和使用。

[table]
|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的值的长度|
[/table]

注意:
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可用于记录一些模型相关的属性在数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值