Redis字符串类型的API

2022-03-02 22:10:46 浏览数 (1)

字符串类型Redis五大基础数据类型的一种,下面介绍它相关的API操作

简单操作:

  • get/set/del : 获取key/设置key/删除key
    • get key
    • set key value
    • del key
图1图1
  • incr / decr : 整数型key 加1/减1
    • incr key
    • decr key
图2图2
  • incrby / decrby : 整数型key 指定整数相加/相减
    • incrby key num
    • decrby key num
图3图3
  • incrbyfloat : 浮点数相加/相减
    • incrbyfloat key num
      • 注意: 没有decrbyfloat函数,相减写负数即可
图4图4
  • append : 字符串末尾添加值
    • append key str
图5图5
  • getrange : 获取key指定索引位置的字符串
    • getrange key 起始索引 结束索引
图6图6
  • strlen : 返回key的长度
    • strlen key
图7图7
  • mset / mget : 设置多个key/获取多个key (m <==> many)
    • mset k1 v1 k2 v2 k3 v3 …… kn vn
    • mget k1 k2 k3 …… kn
图8图8

高级操作:

  • getbit / setbit:
  • bitcount:
  • bitop:

看Redis相关文章上经常会说到Redis五种基础数据类型三种高级数据类型三种高级数据类型中有Bitmap位图结构;

Bitmap底层的数据结构就是SDS字符串使用的是char类型的SDSBitmap使用的是bit类型的SDS,所以bitmap同样最大能支持的长度2^32

上述的三组API则是bitmap的有关操作;

  • getbit: 返回key对应的位图中offset偏移量的值
    • getbit key offset
图9图9

解释一下:设置name=ab,字符串ab对应位数组的数据为0110000101100010,因为字符a的ASCII码是97 (二进制01100001),字符b的ASCII码是98(01100010)。

  • setbit: 设置key对应的位图中offset偏移量的值
    • setbit key offset value

上面我们设置nameab,现在需要修改为bb。由于a的二进制数据为01100001,b的二进制数据为01100010。所以进行下面操作,把index=6位置的1改为0,把index=7位置的0改为=1

图10图10
  • bitcount: 获取key范围内为1的二进制位数
    • bitcount key start end (注意:start,end指是value位置,而不是value对应位图的位置)
图11图11
  • bitop:对多个key的位图进行 与/或/亦或/非操作 (and or xor not)
    • bitop 操作 目的key key1 key2 key3 ....
图12图12

0 人点赞