![](https://csdnimg.cn/release/download_crawler_static/11430140/bg6.jpg)
Hello Redis MP@139
5
mset key1 value1 ... keyN valueN 一次设置多个 key 的值,成功返回 1 表示所有的值都设置了,失败
返回 0 表示没有任何值被设置
msetnx key1 value1 ... keyN valueN 同上,但是不会覆盖已经存在的 key
incr key 对 key 的值做加加操作,并返回新的值。注意 incr 一个不是 int 的 value 会返回错误,incr 一
个不存在的 key,则设置 key 为 1
decr key 同上,但是做的是减减操作,decr 一个不存在 key,则设置 key 为-1
incrby key integer 同 incr,加指定值 ,key 不存在时候会设置 key,并认为原来的 value 是 0
decrby key integer 同 decr,减指定值。decrby 完全是为了可读性,我们完全可以通过 incrby 一个负
值来实现同样效果,反之一样。
append key value 给指定 key 的字符串值追加 value,返回新字符串值的长度。
substr key start end 返回截取过的 key 的字符串值,注意并不修改 key 的值,下标是从 0 开始的。
下面给个例子
2.3 list 类型
redis 的 list 类型其实就是一个每个子元素都是 string 类型的双向链表。所以[lr]push 和[lr]pop 命
令的算法时间复杂度都是 O(1)。另外 list 会记录链表的长度。所以 llen 操作也是 O(1).链表的最大长
度是(2 的 32 次方-1)。我们可以通过 push,pop 操作从链表的头部或者尾部添加删除元素。这使得 list
redis> set k hello
OK
redis> append k ,world
(integer) 11
redis> get k
"hello,world"
redis> substr k 0 8
"hello,wor"
redis> get k
"hello,world"
redis> flushdb
OK
redis> dbsize
(integer) 0
redis> set k1 a
OK
redis> set k2 b
OK
redis> mget k1 k2 k3
1. "a"
2. "b"
3. (nil)