目录
[1. setbit](#1. setbit)
[(1) 格式](#(1) 格式)
[(2) 实例](#(2) 实例)
[2. getbit](#2. getbit)
[(1) 格式](#(1) 格式)
[(2) 实例](#(2) 实例)
[3. bitcount](#3. bitcount)
[(1) 格式](#(1) 格式)
[(2) 实例](#(2) 实例)
[4. bitop](#4. bitop)
[(1) 格式](#(1) 格式)
[(2) 实例](#(2) 实例)
Bitmaps
简介
Bitmaps 是 Redis 的一种新数据类型,它是一种用于存储位信息的数据结构,通常被用来表示状态或者标记。
现代计算机用二进制(位) 作为信息的基础单位, 1个字节等于8位, 例如"abc"字符串是由3个字节组成, 但实际在计算机存储时将其用二进制表示, "abc"分别对应的ASCII码分别是97、 98、 99, 对应的二进制分别是01100001、 01100010和01100011,如下图:
命令
1. setbit
(1) 格式
SETBIT key offset value
key
: 要操作的键名。offset
: 位的偏移量。value
: 要设置的位的值,只能是 0 或 1。
(2) 实例
SETBIT mybitmap 0 1
SETBIT mybitmap 2 1
SETBIT mybitmap 5 1
在 mybitmap
中,将第 0、2 和 5 位的值设置为 1。
2. getbit
(1) 格式
GETBIT key offset
key
: 要查询的键名。offset
: 位的偏移量。
(2) 实例
GETBIT mybitmap 2
查询 mybitmap
中第 2 位的值。
3. bitcount
(1) 格式
BITCOUNT key [start end]
key
: 要统计的键名。start
: 开始计数的位偏移量,默认为 0。end
: 结束计数的位偏移量,默认为 -1,表示统计整个位图。
(2) 实例
BITCOUNT mybitmap 1 6
统计 mybitmap
中从第 1 位到第 6 位之间值为 1 的位的数量。
4. bitop
(1) 格式
BITOP operation destkey key [key ...]
operation
: 操作类型,支持 AND、OR、XOR、NOT。destkey
: 存储结果的键名。key
: 参与操作的键名,可以是一个或多个。
(2) 实例
BITOP AND resultkey key1 key2
BITOP OR resultkey key1 key2 key3
BITOP XOR resultkey key1 key2
BITOP NOT resultkey key
执行位运算操作,将结果存储在 resultkey
中。
以上是关于 Redis 新数据类型 Bitmaps 的一些基本介绍和常用命令,通过这些命令可以方便地进行位图的设置、获取、统计和位运算等操作。
我的其他博客
什么情况下会产生StackOverflowError(栈溢出)和OutOfMemoryError(堆溢出)怎么排查-CSDN博客
在多线程中sleep()和wait()的区别(详细)-CSDN博客