1. set 命令
set KEY VALUE [ex 毫秒 | px 微妙] [nx] | [xx]
如果 ex 和 px 均设置,则以 px 为准
nx : 表示 key 不存在时,执行操作
xx : 表示 key 存在时,执行操作
1 | 127.0.0.1:6379> set name sontek ex 10 nx |
2. mset、mget 命令
mset 一次性设置多个值
1 | 127.0.0.1:6379> mset a java b python c go d php |
mget 一次性获取多个值
1 | 127.0.0.1:6379> mget a b c d |
3. setrange KEY offset VALUE 设置偏移量值
1 | 127.0.0.1:6379> set hello world |
上述命令表示,从 world 的第 2 个字符开始使用 abcd 替换,字符索引是从 0 开始
1 | 127.0.0.1:6379> setrange hello 8 ?? |
如果设置的偏移量的长度大于字符串长度,中间部分则使用 \x00 替换
4. getrange KEY start end
获取字符串 start 到 end 范围的值,包括 start 和 end。字符串的下标从左边是从 0 开始,右边是从 -1 开始。
注意:
如果 start >= length 则返回空
如果 end >= length 则截取至字符串结尾
如果 start 所处位置在 end 右边,则返回空字符串
5. append KEY VALUE
将指定的 VALUE 添加到 KEY 的尾部;
1 | 127.0.0.1:6379> set a java |
6. getset KEY NEW_VALUE
返回 KEY 的旧值,并设置新值
1 | 127.0.0.1:6379> set a java |
7. incr、decr 增加、减少操作
1 | 127.0.0.1:6379> set age 23 |
注意:此处 KEY 的值只能是数字。
8. incrby/decrby KEY offset 增加、减少 offset
同 7 相似,只不过 incr 和 decr 只是增加和减少 1 ,而 incrby 和 decrby 可以指定增加或者减少的个数。
1 | 127.0.0.1:6379> set age 23 |
扩展:incrbyfloat KEY float 可以增加 float 类型
注意:没有 decrbyfloat 命令
9. setbit KEY offset VALUE
设置某个 key 的 offset 二进制位上的值,并返回该位上的旧值。
例如,设置某个 KEY 的值为任意大写字母,如果想让其变成小写字母,可使用此方法实现。
分析如下:A 的 ASCII 的值为 65,二进制表示为 0100 0001,而 a 的 ASCII 值为 97,比 A 多 32,只要在大写字母的 ASCII 值上面加 32 即可得到小写字母。
1 | 127.0.0.1:6379> set char A |
如果 offset 过大,则会在中间填充 0。但是 offset 的值最大为 2^32-1 ,所以可以推算出字符串的最大值为 512M 。
10. getbit KEY offset
获取某个 key 的某个位上的值。
11. bitop OPERATION DESTKEY key1 key2 …
对 key1, key2 ... keyN 做 OPERATION 操作,并将结果保存至 DESTKEY 中。OPERATION 可以是 AND、OR、NOT、XOR,分别是:与、或、非、异或。
如果设置一个 KEY 二进制为 0010 0000,如果任意大写字母与其进行异或操作,则可变为小写字母。
1 | 127.0.0.1:6379> setbit lower 2 1 |