04 redis list结构及命令详解

一:link 链表结构

lpush key value 
作用: 把值插入到链接头部[右边]
注意:rpush key  value   插入到左边
rpop key
作用: 返回并删除链表尾元素

rpush,lpop: 不解释

注意:lpop   key  表示删除一个列表的元素
lrange key start  stop
作用: 返回链表中[start ,stop]中的元素
如:lrange char 1 3
规律: 左数从0开始,右数从-1开始
查看全部
如:lrange char 0 -1

lrem key count value
作用: 从key链表中删除 value值
注: 删除count的绝对值个value后结束
Count>0 从表头删除
Count<0 从表尾删除

ltrim key start stop
作用: 剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key

lindex key index
作用: 返回index索引上的值,
如  lindex key 2

llen key
作用:计算链接表的元素个数
redis 127.0.0.1:6379> llen task
(integer) 3
redis 127.0.0.1:6379> 

linsert  key after|before search value
作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
注: 一旦找到一个search后,命令就结束了,因此不会插入多个value


rpoplpush source dest
作用: 把source的尾部拿出,放在dest的头部,
并返回 该单元值

场景: task + bak 双链表完成安全队列
Task列表                             bak列表
		
		


业务逻辑:
1:Rpoplpush task bak
2:接收返回值,并做业务处理
3:如果成功,rpop bak 清除任务. 如不成功,下次从bak表里取任务


brpop ,blpop  key timeout
作用:等待弹出key的尾/头元素, 
Timeout为等待超时时间
如果timeout为0,则一直等待


 

  

原文地址:https://www.cnblogs.com/hgj123/p/4304862.html