首页 > 数据库 >redis新数据类型Bitmaps基础操作

redis新数据类型Bitmaps基础操作

时间:2022-10-10 22:23:28浏览次数:76  
标签:下标 destkey user1 数据类型 redis Bitmaps key BITOP

1、首先连上你的redis

以下一些命令很简单,或者执行命令后效果也无法体现的就没有进行截图展示

2、Bitmaps相关操作
说明:现在的计算机用二进制(位)作为信息的基础单位,Bitmaps就是进行位操作的数据类型。如果合理使用Bitmaps,
将有效提高内存使用率和开发效率。Bitmaps本身不是一种数据类型,实际上它就是字符串,但是它可以对字符串的位进行操作。
可以将bitmaps想象成一个以位为单位的数组,数组的下标称为偏移量。单个Bitmaps 的最大长度是512MB,即2^32个比特位。


-------------------位操作开始------------------

1、SETBIT
作用:对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit):
语法:setbit key offset value
实践:setbit user1 1 1。说明:设置key为user1的位数组下标为1的值为1。其它相同命令:
setbit user1 4 1
setbit user1 11 1
setbit user1 16 1
setbit user1 18 1
将user1中下标为1,4,11,16,18的位置,值设置为1。

2、GETBIT
作用:对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
语法:getbit key offset

3、BITCOUNT
作用:计算给定字符串中,被设置为 1 的比特位的数量
语法:bitcount key [start end [BYTE|BIT]]
[start end [BYTE|BIT]]:start与stop表示下标,可看到都为闭区间([符号为闭区间)。当选择BYTE参数时,表示以字节作为单位进行计算。
比如上述例子中1,4,11,16,18位置被设置为1,则当前的位数组中的情况为[01001000 00010000 10100000],则以BYTE作为单位,下标为[0, 1, 2]分别代表位数组的三个字节。
如果选择BIT参数,则[01001000 00010000 10100000],下标就是位数组中的偏移量。对应如下下标[0,1,2,3,4,5,6,7, ... ,13,14,15, ..., 22,23]
实践截图如下:bitcount默认是选择BYTE参数。所以bitcount user1 0 1,发现1,4,11三个位置为1了,所以返回的是3。

4、BITOP
作用:对一个或多个保存二进制位的字符串 key 进行位元操作,并将结果保存到 destkey 上。
语法:bitop operation destkey key [key ...]
operation:进行位操作所支持的函数
BITOP 命令支持 AND 、 OR 、 NOT 、 XOR 这四种操作中的任意一种参数:
BITOP AND destkey srckey1 srckey2 srckey3 ... srckeyN ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。
BITOP OR destkey srckey1 srckey2 srckey3 ... srckeyN,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。
BITOP XOR destkey srckey1 srckey2 srckey3 ... srckeyN,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。
BITOP NOT destkey srckey,对给定 key 求逻辑非,并将结果保存到 destkey 。
除了 NOT 操作之外,其他操作都可以接受一个或多个 key 作为输入。
构建两个key,user1与user2,user1的1,5位设置为1,user2的5,7位设置为1

[BITOP AND]实践:and运算,等于java中的&运算
命令:bitop and user3 user1 user2

解释图:

[BITOP OR]实践:or运算,等于java中的|(或)运算

解释图:

[BITOP XOR]实践:xor运算,等于java中的^(异或)运算
^(异或):二元运算符,两者相等为0,不等为1

解释图:

[BITOP NOT]实践:not运算,等于java中的~取反运算。
~取反:1变0,0变1

解释图:略

5、BITPOS
作用:返回位图中第一个值为 bit 的二进制位的位置。
语法:bitpos key bit [start [end [BYTE|BIT]]

-------------------位操作结束------------------

3、总结:
关于Bitmaps数据类型中的bitfield命令可以通过bitfield详解来了解。

标签:下标,destkey,user1,数据类型,redis,Bitmaps,key,BITOP
From: https://www.cnblogs.com/szbm/p/16777489.html

相关文章

  • Linux 下安装Redis
    下载地址:http://redis.io/download,下载最新稳定版本。本教程使用的最新文档版本为2.8.17,下载并安装:1#wgethttp://download.redis.io/releases/redis-6.0.8.tar.gz2......
  • Redis-2
    Redis配置文件在redis根目录提供redis.conf配置文件,如果不使用配置文件,redis会按照默认参数运行网络配置port:指定redis服务使用的端口,默认使用6379bind:配置客户端......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百一十题-高频数据类型
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • docker redis 修改密码
    进入redis[root@iZwz98nzsodcbigjqrrmxmZ~]#dockerexec-itredisbash进入bin目录root@1473acb2f8e7:/data#cd/usr/local/bin/运行命令root@1473acb2f8e7:/us......
  • 阿里云服务器上安装Redis
    阿里云服务器上安装Redis"多学习,多思考"目录阿里云服务器上安装Redis"多学习,多思考"1、下载安装1.1、解压缩1.2、安装C依赖1.3、编译2、修改配置文件3、启动Redis服务4、......
  • Redis和Lombok的下载安装
    下载地址:下载界面:下载好之后进行安装安装界面下一步安装路径的改动默认下一步继续下一步安装点击完成这是我们的安装目录最简单的启动方式是直接双......
  • 2022-10-10 (≥▽≤) Redis数据库
    1.RedisNoSQL:NotOnlySQL非关系型数据库NoSQL的四大类:键值(Key-Value)存储数据库,使用到一个哈希表,这个表中有一个指针指向特定的数据:Redis,Memcache。列存储数据库......
  • SpringBoot启动报错:Parameter 0 of method hmset in com.qcby.rbac.util.RedisUtils r
    SpringBoot启动报错,报错信息如下:  报错是由于A类中定义了含参数的构造函数,Spring自动构造和注入时未为该Bean传入参数,引起报错。查了很多资料,最后发现,我是因为注释......
  • redis本地缓存
    我不想带给你负面情绪,但又想让你知道我的不开心。为了系统性能的提升,一般会将部分数据放入缓存中,加快访问速度。而db承担数据罗盘工作。哪些数据适合放在缓存及时性......
  • Redis都有哪些使用场景
    聊聊Redis现状Redis作为一种内存型的非关系型的数据库,不管在互联网大厂,小厂,大项目和小项目中,几乎都会被使用。为什么Redis会受到如此青睐呢?关于这个问题,可能很多的程序员......