Redis 列表(LIST)详撸-笔记

Redis cyanprobe 9年前 (2016-07-20) 3334次浏览 已收录 0个评论

前言:

列表类型(LIST)可以储存一个有序字符串,常用的方法是从两端进行元素操作,也可以获取某一个片段,不过大量数据的索引存在瓶颈(不建议那么做)。
列表类型内部使用双向链表(double linked list)实现的,因此从几千万个元素的两端获取的获取元素,其效率与从10个元素两端获取效率是相同的。
应用场景分析:例如微博,空间,新鲜事消息推送等。因为获取列表前m条信息是非常快速的。列表还可以作为队列实现,之前的文章涉及到一点。
这次带有应用场景的场景,all in the memories。尝试使用redis作为唯一数据库进行场景举例。

正文

命令: Lpush Rpush key value 从两边开始进行压入操作 返回元素增加后列表长度。
LPOP RPOP 从两边移除元素  返回移除元素值。
LIEN numbers 获取 元素量
//例如获取评论列表,或者文章列表第N-M条。
LRANGE key  start  stop  返回范围值 初始索引为0  stop 范围若越界则返回列表最右边元素。
LREM key count value 删除列表中前 count 个值为value 的元素,返回实际LREM删除的个数。 例如:LREM numbers -3,2 移除右边3个为 2的元素。
LINDEX key index 获取索引值    LSET key index value 设置索引的值
//可以作为一个保存100条记录的日志 (LPUSH logs “系统记录第101条”; LTRIM logs 0,99;)
LTRIM key start end 删除索引之外所有元素
LINSERT  key BEFORE|AFTER fkwebs value 向 key 中fkwebs前|后 中插入值value的数字。
//此命令可以不断的从两个列表之间进行进行转移接受的操作,例如实现一个网址监控系统,进行循环的转移检测的队列。
RPOPLPUSH source desination 从source执行RPOP 压入desination 左边。
//若第source为空可进行阻塞,直到有新的元素被添加,可设置超时阻塞时间。
BRPOPLPUSH source desonation TIMEOUT
 
RPUSHX key value    向已有的LIST 添加多个值,若不存在操作无效
//用于阻塞,执行LIST的队列操作 详情看优先级队列那篇。
BLPOP key1 [key2 ] timeout //第一个   BRPOP key1 [key2 ] timeout //从后
 
 
 
 
 
 


CyanProbe , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Redis 列表(LIST)详撸-笔记
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址