字符串类型是Redis
中五大基础数据类型的一种,下面介绍它相关的API操作:
简单操作:
- get/set/del : 获取key/设置key/删除key
- get key
- set key value
- del key
- incr / decr : 整数型key 加1/减1
- incr key
- decr key
- incrby / decrby : 整数型key 指定整数相加/相减
- incrby key num
- decrby key num
- incrbyfloat : 浮点数相加/相减
- incrbyfloat key num
- 注意: 没有
decrbyfloat
函数,相减写负数即可
- 注意: 没有
- incrbyfloat key num
- append : 字符串末尾添加值
- append key str
- getrange : 获取key指定索引位置的字符串
- getrange key 起始索引 结束索引
- strlen : 返回key的长度
- strlen key
- mset / mget : 设置多个key/获取多个key (m <==> many)
- mset k1 v1 k2 v2 k3 v3 …… kn vn
- mget k1 k2 k3 …… kn
高级操作:
- getbit / setbit:
- bitcount:
- bitop:
看Redis相关文章上经常会说到Redis
有五种基础数据类型,三种高级数据类型,三种高级数据类型中有Bitmap
位图结构;
Bitmap底层的数据结构就是SDS
,字符串使用的是char
类型的SDS
,Bitmap使用的是bit
类型的SDS
,所以bitmap同样最大能支持的长度为2^32
。
上述的三组API则是bitmap的有关操作;
- getbit: 返回key对应的位图中offset偏移量的值
- getbit key offset
解释一下:设置name=ab,字符串ab
对应位数组的数据为0110000101100010
,因为字符a的ASCII码是97 (二进制01100001),字符b的ASCII码是98(01100010)。
- setbit: 设置key对应的位图中offset偏移量的值
- setbit key offset value
上面我们设置name为ab,现在需要修改为bb。由于a的二进制数据为01100001,b的二进制数据为01100010。所以进行下面操作,把index=6位置的1改为0,把index=7位置的0改为=1;
- bitcount: 获取key范围内为1的二进制位数
- bitcount key start end (注意:start,end指是value位置,而不是value对应位图的位置)
- bitop:对多个
key
的位图进行 与/或/亦或/非操作 (and or xor not)- bitop 操作 目的key key1 key2 key3 ....