大纲
1. 命令按照相似度分类
2. 大部分常用命令
3.list 的性能总结
特点 : 单值多value
1. 命令分类
案例:
lpush / rpush / lrange
lpop / rpop
lindex 按照索引下表获得元素 (从上到下)
llen
lrem key 删N个value
ltrim key 开始index到结束index,截取指定范围的值再赋值给key
rpoplpush 源列表 目的列表
lset key index value
linsert key before / after 值1 值2
一些演示:
LRANGE LIST
对非List执行lrange
LINSERT KEY BEFORE / AFTER 值1 值2
LSET KEY INDEX VALUE
LTRIM KEY START END
LREM KEY count value
2.常用命令
BLPOP key1 [key2 ] timeout
移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOP key1 [key2 ] timeout
移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
BRPOPLPUSH source destination timeout
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
LINDEX key index
通过索引获取列表中的元素
LINSERT key BEFORE|AFTER pivot value
在列表的元素前或者后插入元素
LLEN key
获取列表长度
LPOP key
移出并获取列表的第一个元素
LPUSH key value1 [value2]
将一个或多个值插入到列表头部
LPUSHX key value
将一个值插入到已存在的列表头部
LRANGE key start stop
获取列表指定范围内的元素
LREM key count value
移除列表元素
LSET key index value
通过索引设置列表元素的值
LTRIM key start stop
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
RPOP key
移除并获取列表最后一个元素
RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
RPUSH key value1 [value2]
在列表中添加一个或多个值
RPUSHX key value
为已存在的列表添加值
3.性能总结
list 是一个字符串链表, left , right 都可以插入
如果键不存在,创建新的链表
如果键已存在,新增内容
如果键全移除,对应的键也就消失了
链表的操作无论是头跟尾的效率都极高,但如果是中间元素操作,效率比较低。