redis-BitMaps(位图)【redis】
2021/12/5 19:52:11
本文主要是介绍redis-BitMaps(位图)【redis】,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
BitMaps(位图)
前言
我们统计用户信息,比如csdn上面有统计粉丝的活跃度,或者在B站里面统计上线的人数,一般我们在QQ上面看到的没在线的用户头像就是灰色的,更简单的比如我们上班打卡这些两种状态的(不活跃,活跃,登录,未登录,打卡,未打卡等等)
位存储
使用位存储,信息状态只有 0 和 1
比如我们要是存储一个用户一年的打卡情况,我们也就用内存365bit(用0表示未打卡,用1表示打卡),也就46个字节左右
Bitmap是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),在bitmap上可执行AND,OR,XOR,NOT以及其它位操作。
应用场景
签到统计、状态统计
命令 | 描述 |
---|---|
setbit key offset value | 为指定key的offset位设置值 |
getbit key offset | 获取offset位的值 |
bitcount key [start end] | 统计字符串被设置为1的bit数,也可以指定统计范围按字节 |
bitop operration destkey key[key…] | 对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。 |
BITPOS key bit [start] [end] | 返回字符串里面第一个被设置为1或者0的bit位。start和end只能按字节,不能按位 |
设计一个测试
-----------setbit---------------------------- 127.0.0.1:6379> setbit sign 1 0 # 设置星期一未打卡 (integer) 0 127.0.0.1:6379> setbit sign 2 1 # 设置星期二打卡 (integer) 0 127.0.0.1:6379> setbit sign 3 1 (integer) 0 127.0.0.1:6379> setbit sign 4 0 (integer) 0 127.0.0.1:6379> setbit sign 5 1 (integer) 0 127.0.0.1:6379> setbit sign 6 1 (integer) 0 127.0.0.1:6379> setbit sign 7 0 -----------getbit---------------------------- 127.0.0.1:6379> getbit sign 3 # 查看星期三打卡情况 (integer) 1 127.0.0.1:6379> getbit sign 7 # 查看星期日打卡情况 (integer) 0 127.0.0.1:6379> -----------bitcount---------------------------- 127.0.0.1:6379> bitcount sign # 查看本周打卡情况 (integer) 4 127.0.0.1:6379>
这篇关于redis-BitMaps(位图)【redis】的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-08阿里云Redis项目实战入门教程
- 2024-11-08阿里云Redis资料:新手入门与初级使用指南
- 2024-11-08阿里云Redis教程:新手入门及实用指南
- 2024-11-07阿里云Redis学习入门:新手必读指南
- 2024-11-07阿里云Redis学习入门:从零开始的操作指南
- 2024-11-07阿里云Redis学习:初学者指南
- 2024-11-06阿里云Redis入门教程:轻松搭建与使用指南
- 2024-11-02Redis项目实战:新手入门教程
- 2024-10-22Redis入门教程:轻松掌握数据存储与操作
- 2024-10-22Redis缓存入门教程:快速掌握Redis缓存基础知识