zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Redis位图bitmap操作

Redis 操作 bitmap 位图
2023-06-13 09:19:48 时间

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位图操作内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Redis位图bitmap操作