Redis位图bitmap操作

Heidi ·
更新时间:2024-11-15
· 1323 次阅读

目录

定义

强势点

SETBIT 命令

GETBIT 命令

BITCOUNT 命令

应用场景案例

定义

1、位图不是真正的数据类型,它是定义在字符串类型中
2、一个字符串类型的值最多能存储512M字节的内容,位上限:2^32

# 1MB = 1024KB # 1KB = 1024Byte(字节) # 1Byte = 8bit(位) 强势点

可以实时的进行统计,极其节省空间。官方在模拟1亿2千8百万用户的模拟环境下,在一台MacBookPro上,典型的统计如“日用户数”的时间消耗小于50ms, 占用16MB内存

SETBIT 命令

说明:设置某位置上的二进制值

语法:SETBIT key offset value

参数:offset - 偏移量 从0开始

​ value - 0或者1

示例:

# 默认扩展位以0填充 127.0.0.1:6379> SET mykey ab OK 127.0.0.1:6379> GET mykey "ab" 127.0.0.1:6379> SETBIT mykey 0 1 (integer) 0 127.0.0.1:6379> GET mykey "\xe1b" 127.0.0.1:6379> GETBIT 命令

说明:获取某一位上的值

语法:GETBIT key offset

示例:

127.0.0.1:6379> GETBIT mykey 3 (integer) 0 127.0.0.1:6379> GETBIT mykey 0 (integer) 1 127.0.0.1:6379> BITCOUNT 命令

说明:统计键所对应的值中有多少个 1

语法:BITCOUNT key start end

参数:start/end 代表的是 字节索引

示例:

127.0.0.1:6379> SET mykey1 ab OK 127.0.0.1:6379[4]> BITCOUNT mykey (integer) 6 127.0.0.1:6379[4]> BITCOUNT mykey 0 0 (integer) 3 应用场景案例 # 网站用户的上线次数统计(寻找活跃用户) 用户名为key,上线的天作为offset,上线设置为1 # 示例 用户名为 user1:login 的用户,今年第1天上线,第30天上线 SETBIT user1:login 0 1 SETBIT user1:login 29 1 BITCOUNT user1:login

到此这篇关于Redis位图bitmap操作的文章就介绍到这了,更多相关Redis位图操作内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!



bitmap Redis

需要 登录 后方可回复, 如果你还没有账号请 注册新账号