key | element |
---|
user:1:message | a-b-c-d-e-f |
- lpush :左边加入
- lpop:左边弹出
- rpush :右边加入
- rpop :左边弹出
- llen:长度
- lrem:移除某个元素
- lrange :截取某一段的元素
- lindex:某个位置的元素
特点:
rpush key value1 value2 value3
#从列表右端插入值
lpush key value1 value2 ...valuen
#从列表左端插入值 1-N
linsert key before|after value newvalue
#在list指定的值前|后 插入newvalue
lpop key
#从列表左侧弹出一个item
rpop
#从列表右侧弹出一个item
lrem key count value
#根据count值 从列表中删除所有value相等的项
(1) count>0 从左到右 ,删除最多countg个value相等的项
(2)count<0 从右到左,删除最多Math.abs(count)个value相等的项目
(3) count = 0,删除所有value相等的项
| abcdef |
---|
lrem listkey 0 a | ccbf |
lrem listkey -1 c | cbf |
ltrim key start end
#按照索引范围修剪列表
| abcdef |
---|
ltrim listkey 1 4 | bcde |
ltrim listkey 0 2 | bcd |
查
lrange key start end (包括end)
#获取列表制定索引范围所有item
abcdef
lindex key index
#获取列表制定索引的item
llen key
#获取列表的长度
| abcdef |
---|
lrange listkey 0 2 | abc |
lrange listkey 1 -1 | bcdef |
lindex listkey 1 | a |
lindex listkey -1 | f |
llen key | 6 |
lset key index newvalue
#设置列表制定索引值为newvalue
| abcdef |
---|
lset listkey 2 java | abjavadef |
实战:
TimeLine
你关注的人更新微博:lpush
weibo10129
weibo998
weibo10194
weibo10158
weibo100
bl0op key timeout
#lpop 阻塞版本 timeout是阻塞超时时间,timeout=0 为永远不会阻塞
brpop key timeout
#rpop 阻塞版本 timeout为阻塞超时时间,timeout=0 永远不阻塞
tips
- lrush +lpop = stack
- lpush +rpop = queue
- lpush + ltrim = capped collection
- lpush +brpop+ = message queue