redis命令行之bitmap类型使用详解:
1、查看帮助命令:
setbit key offset value 是其存储结构。
offset 是指二进制位的偏移量;一个字节有8个二进制位;
2、二进制位设置演示:
1)setbit k1 1 1 此命令中offset 是1 ,value 是 1(这里只可能是0或1,二进制的原因呗),此处的长度也是1。
2)setbit k1 9 1 ,长度是2, 字节第9位已经超过了二进制的首个字符,三个地方打了1的标识,对应的ASCII码是A@。
get获取的时候取到的是ASCII码对应的值: man ascii 命令
结果如下:
Hex 代表16进制,41 中4代表前四位的值,1代表后四位的值。
3、bitpos 命令使用帮助
演示:
4、BITCOUNT 命令使用:
画图演示:
5、bitop 命令
演示 与操作:
演示或操作:
6、有用户系统,统计用户登录天数,且窗口随机
setbit sean 1 1
setbit sean 7 1
setbit sean 364 1
STRLEN sean
BITCOUNT sean -2 -1
计算模式:
7、京东,618做活动:送礼物
大库备货多少礼物
假设京东有2E用户
僵尸用户
冷热用户/忠诚用户
活跃用户统计!随即窗口
比如说 1号~3号 连续登录要 去重
setbit 20190101 1 1
setbit 20190102 1 1
setbit 20190102 7 1
bitop or destkey 20190101 20190102
BITCOUNT destkey 0 -1
计算模式:
这些应用场景,大家一定要多思考,多练习,定会很快掌握,好了,今天的分享到此结束,下一篇我们分享 list ,hash、set等数据类型,敬请期待!