前言:
redis里支持list类型,当然list这个结构可以通过逻辑处理变成一些其他的结构
如果在list类型的基础上去给他写一个里面元素先进先出的话,那么他就变成里一个栈结构
如果给它写一个先进先出的逻辑,那么他的结构就是队列
如果list这个‘容器’两面都可以进出的话,他就是一个阻塞队列
所用的list的命令都是用 l 开头的
1.设置值
lpush {key name} {value} #从左边插入
rpush {key name} {value} #从右边插入
lset {key name} {value} #按下标插入,下标处原有的值被替换
3.通过区间获取值
lrange {key name} {start} {end}
获取全部值 0 -1
4.移除对队列里的元素
lpop {key name} #移除list里最左边的元素
rpop {key name} #移除list里最右边的元素
5.通过下标获取list里的某一个值
lindex {key name} {index}
6.查询列表的长度
Llen {key name}
7.移除list中指定的值
lrem {key name} {count} {value}
8.截取数据库值
ltrim {key name} {index start} {index stop}
9.移除当前列表的最后的一个元素,并将该元素放到新列表当中
rpoplpush {当前列表} {新列表}
小结:
更多全面的相关指令可以参考redis的中文官网
list实际上是一个双向链表,brfore Node after,l~left,r~right都是可以插入值的
如果key不存在,则创建新的节点
如果key存在,则更新(覆盖原有的)值
在两边插入和更新值效率是最高的,中间操作相对来说效率回低一点