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"