Redis 学习笔记 3.4 列表类型

1 介绍

列表类型 (list) 可以存储一个有序的字符串列表,常用的操作是向列表的两端添加元素,或者获得列表的某一个片段。

它的内部实现是双向链表,向头尾两端处理元素特别方便。适合的场景像是社交网站的新鲜事,日志记录,关心尾部节点,不担心旧有记录的删除调整情况。

Redis 的列表类型还可以用来实现队列,并且支持阻塞式读取,可以轻易地实现一个高性能的优先级队列。

2 命令

LPUSH key value [value …] // 向列表左边增加元素 RPUSH key value [value …] // 向列表右边增加元素

LPOP key // 从列表左边取出元素 RPOP key // 从列表右边取出元素

LLEN // 列表长度

LRANGE key start stop // 按照索引号段取出元素,这个估计是比较高频的应用。

twowinter 小结: 如果想把列表当作栈,即实现LIFO,可以使用 LPUSH + LPOP,或者 RPUSH + RPOP,即同侧的进出。 如果想把列表当作队列,即实现FIFO,可以使用 LPUSH + RPOP,或者 RPUSH + LPOP,即异侧的进出。

代码语言:javascript
复制
127.0.0.1:6379> rpush dlink 11 12 13
(integer) 3
127.0.0.1:6379> llen dlink
(integer) 3
127.0.0.1:6379> lpush dlink 1
(integer) 4
127.0.0.1:6379> lpush dlink 2 3
(integer) 6
127.0.0.1:6379> llen dlink
(integer) 6
127.0.0.1:6379> lrange dlink 0 4
1) "3"
2) "2"
3) "1"
4) "11"
5) "12"
127.0.0.1:6379> lrange dlink 0 1
1) "3"
2) "2"
127.0.0.1:6379> lrange dlink 0 6
1) "3"
2) "2"
3) "1"
4) "11"
5) "12"
6) "13"