- 2021-05-17更新:增加了
LPOP
/RPOP
的count
参数。
前文中我们已经介绍了Redis中有关于字符串的操作命令,以及一些对键值对操作的命令。在本文中,我们将介绍一种新类型的相关命令——列表(List)。列表是编程中非常常用的一种数据结构,通常有线性表(数组)与链表两种的实现。在Redis中,列表便是使用链表进行实现。由于篇幅的问题,列表的命令将分为两篇文章进行介绍。
LPUSH / RPUSH
LPUSH
与RPUSH
命令用于将元素插入队列中,并在Redis 2.4以上版本支持一次将一个或多个元素插入队列中。两个命令的区别为LPUSH
将新元素插入到队列的队首位置,而RPUSH
命令将元素插入到队尾位置。命令执行后将返回插入元素后队列的长度。当键不存在,将创建一个空白的队列并执行插入操作;若键存在但不为队列,将返回错误。
LPUSH key element [element ...]
RPUSH key element [element ...]
当使用LPUSH
插入多个元素时,将逐个将元素插入到队首。如插入a
、b
、c
后,队列中的顺序为c
、b
、a
。
当使用RPUSH
插入多个元素时,将逐个将元素插入到队尾。如插入a
、b
、c
后,队列中的顺序为a
、b
、c
。
示例
使用LPUSH
插入元素:
redis> LPUSH cards "0001" "0002"
(integer) 2
redis> LRANGE cards 0 -1
1) "0002"
2) "0001"
redis> LPUSH cards "0003"
(integer) 3
redis> LRANGE cards 0 -1
1) "0003"
2) "0002"
3) "0001"
使用RPUSH
插入元素:
redis> RPUSH cards "0001" "0002"
(integer) 2
redis> LRANGE cards 0 -1
1) "0001"
2) "0002"
redis> LPUSH cards "0003"
(integer) 3
redis> LRANGE cards 0 -1
1) "0001"
2) "0002"
3) "0003"
已存在的键不为列表:
redis> SET greeting "hello world"
OK
red