ToB企服应用市场:ToB评测及商务社交产业平台

标题: Redis-Bitmap位图及其常用下令详解 [打印本页]

作者: 立聪堂德州十三局店    时间: 2024-9-9 20:39
标题: Redis-Bitmap位图及其常用下令详解
1.Redis概述


2.Bitmap


Bitmap 数据结构


Bitmap 下令

1. SETBIT

将指定偏移量上的位设置为给定值(0 或 1)。

SETBIT key offset value 设置指定键(key)的位图(bitmap)中,特定偏移量(offset)处的位值(value)。

Tips:


返回值


示例

假设有一个键名为 user:123nline,用于表示在线状态的位图:
  1. SETBIT user:123:online 0 1
复制代码
将位图 user:123nline 中偏移量为0的位设置为1,表示用户123如今在线。


2. GETBIT

获取指定偏移量上的位的值(0 或 1)。

GETBIT key offset 是 Redis 中用于获取指定键的位图中,特定偏移量处的位值的下令。

Tips:


返回值


示例

假设有一个键名为 user:123nline,用于表示在线状态的位图:
  1. GETBIT user:123:online 0
复制代码
这个下令将返回位图 user:123nline 中偏移量为0的位的当前值,表示用户123是否在线(0表示离线,1表示在线)。

3. BITCOUNT

统计指定范围内的位为 1 的数量。

BITCOUNT key [start end [BYTE | BIT]] 是 Redis 中用于计算指定键的位图中,从 start 偏移量到 end 偏移量之间的全部位的数量的下令。

Tips


返回值


示例

假设有一个键名为 user:123nline,用于表示在线状态的位图:
  1. BITCOUNT user:123:online
复制代码
这个下令将返回位图 user:123nline 中全部位的数量,即用户123的在线状态记录数。
  1. BITCOUNT user:123:online
  2. 0 10 BIT
复制代码
这个下令将返回位图 user:123nline 中从偏移量0到10的位的数量。


4. BITOP

对一个或多个 Bitmap 进行位操纵,并将结果保存到 destkey 中(支持 AND、OR、XOR、NOT 等操纵)。

BITOP <AND | OR | XOR | NOT> destkey key [key ...] 是 Redis 中用于对多个位图执行位操纵的下令。

参数分析


Tips


返回值


示例

假设有两个位图键名为 user:123nline 和 user:456nline,用于表示用户的在线状态:
  1. BITOP AND user:allonline user:123:online user:456:online
复制代码
下令将对 user:123nline 和 user:456:online 进行按位与操纵,并将结果存储到 user:allonline 中,表示同时在线的用户。
  1. BITOP OR user:anyonline user:123:online user:456:online
复制代码
下令将对 user:123:online 和 user:456:online 进行按位或操纵,并将结果存储到 user:anyonline 中,表示恣意在线的用户。
  1. BITOP NOT user:123:offline user:123:online
复制代码
下令将对 user:123:online 进行按位非操纵,并将结果存储到 user:123:offline 中,表示用户123的在线状态取反。

5. BITPOS

寻找第一个或最后一个被设置为给定值的位的位置。

BITPOS 是 Redis 中用于查找位图中指定位的位置的下令。

Tips


返回值


示例

假设有一个键名为 user:123:permissions,用于表示用户权限的位图:
  1. SETBIT user:123:permissions 0 1
  2. SETBIT user:123:permissions 3 1
  3. SETBIT user:123:permissions 7 1
复制代码
这个下令将创建一个位图 user:123:permissions,并将偏移量0、3和7的位设置为1。
  1. BITPOS user:123:permissions 1
复制代码
下令将返回位图 user:123:permissions 中第一个出现的 1 的位置,即偏移量0。
  1. BITPOS user:123:permissions 1
  2. 2
复制代码
下令将在偏移量2之后的范围内查找第一个出现的 1,由于在此范围内没有 1,因此返回 -1。
  1. BITPOS user:123:permissions 0 1 BYTE
复制代码
下令将以字节为单位,在偏移量1之前的范围内查找第一个出现的 1 的位置。


更多下令可以去官网查看哦~https://redis.io/docs/latest/commands/?group=bitmap


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4