redis操作位

1.redis的基本操作可以分为两大类

1.1 零存整取

1.例如存储一个java字符串,j对应的ACII码为74,转为2进制为01001010,a对应的ACII码为a,转为2进制为01100001,v对应的ACII码为118,转为2进制为01110110。如下k1为key第一个参数为偏移量,第二个参数位置
在这里插入图片描述

1.2 整存零取

在这里插入图片描述

2.统计

2.1 bitcount命令(统计1出现的次数)

场景:假设要统计用户的签到记录,可以通过1来代表签到,0代表未签到,格式即为:101000111…
在这里插入图片描述
另外,bitcount命令后还可以带两个参数表示起始位置和结束位置,注意:是指value值的起始位置,不是值bit的起始位置
在这里插入图片描述

2.2 bitpost命令

1.统计0/1出现的起始位置
在这里插入图片描述
2.后面还可以带两个参数,指的是字符的起始位置,不是bit的起始位置!
在这里插入图片描述

3.BIT批处理

3.1 bitfield key get命令获取某几位且返回一个数

获取k1中值的位,从0开始,获取5个位,返回一个数,u代表无符号,i代表有符号,有符号,1开头就代表负数,0就代表正数!

 bitfield k1 get u5 0

在这里插入图片描述

3.1 bitfield key set命令去修改值

1.比如,现在k2对应的value为ja
在这里插入图片描述
2.修改为jb,b对应的ACII码为98
如下命令代表从第八开始的后八位用98转换成二进制(无符号)来替代

 bitfield k2 set u8 8 98

在这里插入图片描述

3.3 bitfield key incrby自增

1.自增操作有可能出现溢出,既有向上溢出也有可能出现向下溢出,redis中对于溢出采取的方案是折返,即8位无符号位数255加1溢出变为0,8为有符号数127,加1变为-128

以下代表从第五位开始的后三位加1

bitfield k2 incrby u3 5 1

在这里插入图片描述
2.再给第五位开始的后三位加1,会出现三组1+1的情况,出现溢出,就都变成0了

bitfield k2 incrby u3 5 1

在这里插入图片描述

3.也可以修改溢出策略,改为执行失败fail

bitfield k2 overflow fail incrby u3 5 1

在这里插入图片描述
4.sat表示保留在最大值或者最小值

bitfield k2 overflow sat incrby u3 5 1

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值