Redis特殊数据类型bitmap位图


Posted in Redis onJune 01, 2022

Redis数据类型bitmap位图

bitmap数据结构,是基于二进制位来进行操作记录的,只有0 和 1两个状态。
可以想象成一个数组,里面只有0或者1。

能干嘛呢?

现实中会有这些场景,比如统计用户信息,活跃用户和非活跃用户、登录的、未登录的用户,打卡的、未打卡的,像这种只有2个状态,并且数据量非常大的,就适合使用bitmap。

网上找了一个对比,可以帮助记忆下bitmap的优点。

Redis特殊数据类型bitmap位图

一、setbit

设置或者清空key的value(字符串)在offset处的bit值。

那个位置的bit要么被设置,要么被清空,这个由value(只能是0或者1)来决定。当key不存在的时候,就创建一个新的字符串value。

比如现在我设置一个用户的7天的打卡信息,1是打卡,0是未打卡。

setbit sign 0 1
setbit sign 1 1
setbit sign 3 1
setbit sign 4 0
setbit sign 5 1
setbit sign 6 0
setbit sign 2 1

Redis特殊数据类型bitmap位图

二、getbit

对 key 所储存的字符串值,获取指定偏移量上的位(bit)。

getbit sign 4

Redis特殊数据类型bitmap位图

三、bitcount

统计字符串被设置为1的bit数。

不存在的 key 被当成是空字符串来处理,因此对一个不存在的 key 进行 BITCOUNT 操作,结果为 0 。

bitcount sign

Redis特殊数据类型bitmap位图

以上就是Redis特殊数据类型bitmap位图的详细内容,更多关于Redis数据类型bitmap位图的资料请关注三水点靠木其它相关文章!


Tags in this post...

Redis 相关文章推荐
Redis遍历所有key的两个命令(KEYS 和 SCAN)
Apr 12 Redis
Redis延迟队列和分布式延迟队列的简答实现
May 13 Redis
Redis可视化客户端小结
Jun 10 Redis
使用Redis实现实时排行榜功能
Jul 02 Redis
Redis Cluster集群动态扩容的实现
Jul 15 Redis
为什么RedisCluster设计成16384个槽
Sep 25 Redis
浅谈Redis的keys命令到底有多慢
Oct 05 Redis
Redis的字符串是如何实现的
Oct 24 Redis
CentOS8.4安装Redis6.2.6的详细过程
Nov 20 Redis
分布式架构Redis中有哪些数据结构及底层实现原理
Mar 13 Redis
Redis 哨兵机制及配置实现
Mar 25 Redis
基于Redission的分布式锁实战
Aug 14 Redis
浅谈Redis的事件驱动模型
May 30 #Redis
Redis 异步机制
Redis 报错 error:NOAUTH Authentication required
解决 redis 无法远程连接
Redis 限流器
May 15 #Redis
Redis高并发缓存架构性能优化
详解Redis的三种常用的缓存读写策略步骤
You might like
PHP教程 变量定义
2009/10/23 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
PHP实现绘制3D扇形统计图及图片缩放实例
2014/10/01 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
YII框架http缓存操作示例
2019/04/29 PHP
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
浅谈JavaScript对象的创建方式
2016/06/13 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
浅析ES6的八进制与二进制整数字面量
2016/08/30 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
vue-socket.io接收不到数据问题的解决方法
2020/05/13 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
[05:13]2018DOTA2亚洲邀请赛主赛事第二日战况回顾 LGD、VG双雄携手晋级
2018/04/05 DOTA
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
深入理解Python中各种方法的运作原理
2015/06/15 Python
python实现的希尔排序算法实例
2015/07/01 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
this关键字的含义
2015/04/08 面试题
创立科技Java面试题
2015/11/29 面试题
大学生求职工作的自我评价
2014/02/13 职场文书
自荐信的基本格式
2014/02/22 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
换届选举主持词
2015/07/03 职场文书
2016年寒假见闻
2015/10/10 职场文书
python套接字socket通信
2022/04/01 Python
vue封装数字翻牌器
2022/04/20 Vue.js
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers