首页 java杂谈 Redis中bitmap的妙用

Redis中bitmap的妙用

BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit…

BitMap是什么

就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间。

Redis中的BitMap

Redis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没有新增新的数据类型,因为setbit等命令只不过是在set上的扩展。

setbit命令介绍

指令 SETBIT key offset value
复杂度 O(1)
设置或者清空key的value(字符串)在offset处的bit值(只能只0或者1)。

空间占用、以及第一次分配空间需要的时间

在一台2010MacBook Pro上,offset为2^32-1(分配512MB)需要~300ms,offset为2^30-1(分配128MB)需要~80ms,offset为2^28-1(分配32MB)需要~30ms,offset为2^26-1(分配8MB)需要8ms。<来自官方文档>
大概的空间占用计算公式是:($offset/8/1024/1024)MB

 

应用场景:

用户签到

统计活跃用户

用户在线状态

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

为您推荐

阿里云优惠口令

阿里云优惠口令

2022 年 4 月更新 【优惠口令】 com英文域名续费:商标优选即买即用 cn英文域名续费:商标智能在线检索 xin...
年少不懂鲁迅真,读懂鲁迅已中年-程序员孔乙己(转)

年少不懂鲁迅真,读懂鲁迅已中年-程序员孔乙己(转)

  互联网的格局,是和别处不同的:都是格子衫,稀疏的头发,双肩包,男。 写代码的人,傍午傍晚散了工,每每三两人...
各平台免费翻译API

各平台免费翻译API

google http://translate.google.cn/translate_a/single?client=...
2021年 -JRebel最新激活破解方式

2021年 -JRebel最新激活破解方式

服务器地址监听服务器地址: http://jrebel.cicoding.cn GUID生成器: http://jreb...
java十年架构的演变

java十年架构的演变

作者:huashiou 链接:https://segmentfault.com/a/1190000018626163 1...
返回顶部