您的位置:首页 > 数据库 > Redis

理解 Redis setbit

2014-03-20 18:49 411 查看
初看这个指令有点疑惑。以下是相关的学习笔记,希望有用。

这个http://blog.getspool.com/2011/11/29/fast-easy-realtime-metrics-using-redis-bitmaps/ 是一个使用场景,国内也有翻译的。

setbit



给这个key分配0-n个bit。N取决于最大的offset值。后面就可以在任意位置上读取或者设定位值。N最大值是2的32次方-1,也就是4G。实现的时候,每个位置对于一个位,4G个位空间需要4G/8个字符串位置,也就是512m内存空间来做这个事情J. 灵活运用这个特性可做些特别的事情。比如统计活跃用户:我们不需要单独为每个用户id存一个char(0或者1)—redis只需要一个bit就行。这样,能直接知道任意用户是否是活跃的。当然,如果只是关心总数而不是每个用户的具体情况,value部分直接维护一个int值即可。通过INCR指令即可实现。

为避免服务的过程中因内存申请造成服务器阻塞,可考虑预先执行一下给可能的最大值设0来进行预热。

问题回答

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: