redis list 使用和理解

keyelement
user:1:messagea-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 accbf
lrem listkey -1 ccbf
ltrim key start end  
#按照索引范围修剪列表 
abcdef
ltrim listkey 1 4bcde
ltrim listkey 0 2bcd
查 
lrange key start end (包括end)
#获取列表制定索引范围所有item
abcdef 
lindex key index 
#获取列表制定索引的item 
llen key 
#获取列表的长度 
abcdef
lrange listkey 0 2abc
lrange listkey 1 -1bcdef
lindex listkey 1a
lindex listkey -1f
llen key6
lset key index newvalue 
#设置列表制定索引值为newvalue 
abcdef
lset listkey 2 javaabjavadef

实战:
TimeLine
你关注的人更新微博:lpush
weibo10129
weibo998
weibo10194
weibo10158
weibo100

bl0op key timeout 
#lpop  阻塞版本 timeout是阻塞超时时间,timeout=0 为永远不会阻塞 
brpop key timeout 
#rpop  阻塞版本 timeout为阻塞超时时间,timeout=0 永远不阻塞  

tips

  1. lrush +lpop = stack
  2. lpush +rpop = queue
  3. lpush + ltrim = capped collection
  4. lpush +brpop+ = message queue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值