Redis List 类型相关命令

List 数据类型指 key 对应的 value 是一个双向链表结构,所以 List 类型提供链表支持的所有操作。List 类型在互联网应用中非常有用,例如存放微博中 “我关注的列表” ,或者论坛中所有回帖 ID。

List 类型支持的命令表:

命令 描述
lpush key string 向 key 对应 List 头部添加一个字符串元素, 成功返回 1 , 失败返回 0
rpush key string 向 key 对应 List 尾部添加一个字符串元素, 成功返回 1 , 失败返回 0
llen key 返回 key 对应 List 的长度, 如果 key 不存在返回 0, 如果 key 对应类型不是 List 返回错误
lrange key start end 返回指定区间内 (start ~ end)的元素,下标从 0 开始,负值表示从链尾部开始计算,
-1 表示倒数第一个元素, key 不存在返回空列表
ltrim key start end 截取 List 指定(start ~ end)元素,成功返回 1, key 不存在返回错误。
lset key index value 设置 List 中指定下标的元素值,成功返回 1, key 或者下标不存在返回错误
lrem key count value 从 List 头部(count 正数)或尾部(count 负数)删除一定数量(count 绝对值)的
匹配 value 的元素,返回删除的元素数量。count 为 0 时候删除全部
lpop key 从 List 头部删除并返回删除元素。如果 key 对应 List 不存在或者是空返回 nil ,
如果 key 对应值不是 List 返回错误
rpop key 从 List 尾部删除并返回删除元素
blpop key1 … keyN timeout 从左到右扫描 key1 … keyN, 返回对第一个非空 List 进行 lpop操作并返回。如果所有
List 都是空或者不存在,阻塞 timeout 秒, timeout 为 0 表示一直阻塞。阻塞时,如果
有其他 client 对 key1 … keyN 中任意一个 key 进行 push 操作,阻塞解除并放回。如果
超时发生,则返回 nil。
brpop key1 … keyN timeout 功能与 blpop 相似,不同的是 blpop 从头部删除,而 brpop 从尾部删除

另外,使用 List 还可以实现消息队列功能,减轻数据库的压力。消息队列类似于现实生活中的排队,每次有消息到达时就把消息放进队列的尾部,取出消息时就从队列的头部取出。要用 List 实现消息队列,先用 rpush 命令把消息放进队列的尾部,然后使用 lpop 命令把消息从队列的头部中取出。

猜你喜欢

转载自blog.csdn.net/simplexingfupeng/article/details/80398192