引言
本文主要介绍redis的list类型的命令。主要包括以下几个
- lpush key value[value …]
- lpop key value
- rpush key value [value …]
- rpop key value
- llen key value
- lrange key low high
- rpushx key value
- lpushx key value
- lrem key count value
- lset key index value
- lindex key index
- linsert key before/after pivot value
- rpoplpush source destination
- blpop key[key …] timeout
- brpop key[key …] timeout
- brpoplpush source destination timeout
- ltrim key low high
挨个介绍
常见的就不挨个介绍了,下面的网站可以查询到以上命令的全部用法
http://www.redis.cn/commands/rpushx.html
rpushx和lpushx
只会在key存在的时候push元素到list中
rpoplpush 和 brpoplpush
这两个命令是把一个list末尾的元素push到另一个list的头部,这是一个原子性的操作。
brpoplpush和没有b的区别在于brpoplpush是阻塞式的,如果原list没有元素,那么命令就会阻塞timeout 秒,如果timeout是0那么会一直阻塞
lrem
从key的list中移除count个value。
count >0 从头到尾的查找顺序
count <0 逆序查找
count = 0 删除全部相同的
lrem key count value
linsert
会顺序查找到pivot值,并根据before和after在对应位置插入值。
查找到第一个pivot值就结束
linsert key before|after pivot value
ltrim
会裁剪list,只保留low下标到high下标的值,[low,high]
ltrim key low high