redis详解-(4)列表
redis的列表是基于LinkedList实现,元素是字符串类型,列表头尾增删快,中间增删慢,增删元素是常态。
列表中元素可以重复出现,最多包含2的32次方减1个元素。
列表的索引从左至右从0开始,列表的索引从右至左从-1开始。
正数索引 | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
语言 | C | R | Java | Python | Scala |
负数索引 | -5 | -4 | -3 | -2 | -1 |
命令说明:
B block块 阻塞
L left 左
R right 右
X exist 存在
左右或者头尾压入(栈式)元素
lpush key value [value…] 从左边压入
lpushx key value 从左边压入
rpush key value [value…] 从右边压入
rpushx key value 从右边压入
左右或者头部弹出元素
lpop key 从左边弹出
rpop key 从右边弹出
从一个列表尾部弹出元素压入另一个列表的头部
rpoplpush source destination
返回列表中指定范围内的元素
lrange key start stop
lrange key 0 -1 返回所有的元素
获取指定位置的元素
lindex key index
设置指定位置元素的值
lset key index value
列表长度,元素个数
llen key
从列表的头部删除值等于value的元素count次
lrem key count value
count>0:从表头开始向表尾搜索,移除与value相等的元素,数量为count。
count<0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
count=0:移除表中所有与value相等的值。
剪切指定范围内的元素
ltrim key start stop
在列表中某个存在值(pivot)的前后插入元素,这里具体使用rpush和lpush根据业务而定,例子制作展示
key和value不存在,不进行任何操作
linsert key before|after pivot value
java | scala | c | R | - |
---|---|---|---|---|
java | ruby | scala | c | R |