list是一个列表
在redis中,list可以实现栈、队列、阻塞队列。
所有的list命令都是以l开头的
Lpush 从左边放入
lpush name liming 将一个或者多个值插入到列表的头部(左)
lpush name jimao
lpush name liming
lrange name 0 -1 获取name中的值
Rpush 从右边放入
rpush name liwanjuan 将一个或者多个值插入到列表的尾部(右)
往左边移除Lpop
lpop name 移除name的第一个元素
往右边移除Rpop
Rpop name 移除name的最后一个元素
Lindex
lindex name 0 通过下标来获取name的第一个元素的值
lindex name 1 通过下标来获取name的第二个元素的值
llen
llen name 判断list中的长度
移除指定的值
lrem name 2 jimao 移除name集合中指定个数的value,这里是移除name集合中2个叫jimao的值
ltrim name 0 -1通过下标截取指定的长度,这个name已经被改变,只剩下截取的数值
rpoplpush name name1 移除name的最后一个元素,并将它移到新的name1中
exists name 判断name是否存在,0为不存在
lset name 0 liming 往name集合的第0个位置的值更换为liming,相当于更新操作,如果name不存在,则会报错
linsert name before "world" "liwanjuan" 在world的前面插入liwanjuan
linsert name after "world" "lvxinfeng" 在world 的后面插入lvxinfeng
list实际上是一个链表,可以在节点的前后插入值,如果key不存在,可以创建新的链表,如果key存在,新增内容,如果移除了key,对应的值也不会存在
在两边插入或者改动值,效率最高,如果插入中间元素,效率会偏低
list可以做消息队列 ( lpush rpop) 也可以做栈(lpush lpop)