基于Redis bitmap实现开关配置功能
来源:互联网 发布:数据分析发展前景好吗 编辑:程序博客网 时间:2024/04/28 13:52
作者:zhanhailiang 日期:2014-12-21
bitmap api
SETBIT key offset value
对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
位的设置或清除取决于value参数,可以是0也可以是1。
当key不存在时,自动生成一个新的字符串值。
字符串会进行伸展(grown)以确保它可以将value保存在指定的偏移量上。
当字符串值进行伸展时,空白位置以0填充。
offset参数必须大于或等于0,小于2^32(bit映射被限制在512MB之内)。
返回值: 指定偏移量原来储存的位。
Warning: 对使用大的offset的SETBIT操作来说,内存分配可能造成Redis服务器被阻塞。
Warning: 当生成一个很长的字符串时,Redis 需要分配内存空间,该操作有时候可能会
造成服务器阻塞(block)。在2010年的Macbook Pro上,设置偏移量为536870911(512MB内
存分配),耗费约300毫秒,设置偏移量为134217728(128MB内存分配),耗费约80毫秒,
设置偏移量33554432(32MB内存分配),耗费约30毫秒,设置偏移量为8388608(8MB内存分配),
耗费约8毫秒。GETBIT key offset
对key 所储存的字符串值,获取指定偏移量上的位(bit)。
当offset比字符串值的长度大,或者key不存在时,返回0。
返回值:字符串值指定偏移量上的位(bit)。
需求场景
在很多业务场景中,我们都需要针对很多功能实现配置,比如以下场景:
- 新增某个功能, 希望有开关可以控制是否开启该功能;
- 游戏上线某个新功能,希望引导用户去打开该功能,需要诱导用户,比如打开该功能,可以获取XX奖励,此时需要标记位来记录领奖记录;
代码实现
https://github.com/billfeller/billfeller.github.io/blob/master/code/IBit.php
- 基于Redis bitmap实现开关配置功能
- 基于Redis bitmap实现签到功能
- 基于redis的统一session功能实现
- 基于redis的zset实现排行榜功能
- redis bitmap实现签到
- 基于BitMap 实现IpTable
- ui网络开关功能的实现
- 基于CMOS模拟开关实现平衡混频器
- maven项目配置redis,实现购物车功能
- Redis 订阅功能实现
- 4.基于redis缓存配置
- 用Redis实现Session功能
- 用Redis实现Session功能
- 用 Redis 实现锁功能
- Redis-博文功能实现
- 用Redis实现Session功能
- 用Redis实现Session功能
- 使用 Redis 实现排行榜功能
- android_handler(一)
- 我的架构师梦想日记
- SQL中EXISTS的用法
- ZOJ3822---- Domination
- FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别
- 基于Redis bitmap实现开关配置功能
- 网站SEO优化方案
- sql 把a表的数据插入b表中,where某一个字段相同
- 傲游浏览器
- NYOJ139 我排第几个(字符串的解码)
- 怎样在Eclipse中快速查看各种源代码?
- 24位互联网大咖的人生预言
- vim配置
- 基于Redis bitmap实现签到功能