基本的数据类型,列表,在Redis里面我们可以把list玩成,栈
、队列
、阻塞队列
。
所有的list命令都使用l或r开头的,代表left和right,l是队头r是队尾
数值操作
lpush key value #左边插入,向list集合中存储一个值,可以多次存储
lrange key start stop #通过区间获取集合中指定的元素
数据的读取规则,先进后出,最后一个元素为0号元素。
当我们再次向里面存储数据时,他存到了最后一位而不是第一位,所以说这相当于双端队列
,可以从两端取,也可以从两端存。
栈的概念:是弹压,就像子弹壳装弹,一粒一粒压进去,但是打出来的时候是从上面打出来的,最先压进去的最后弹出来,如果进去顺序是123,打出来顺序是321,这就是后进先出。
队列的概念:就是我们平时排队,按次序来,你排在第1个,那你就第一个轮到,就是先进先出,先到先来
rpush key element [element...] #向队列尾部插入元素
lpop key [count] #从集合左边移除一个值,可以指定移除个数,若不指定将移除第一个
rpop key [count] #从集合右边移除一个值,可以指定移除个数,若不指定将移除第一个
lindex key index #通过下标获取值
llen key #返回这个集合的长度
lrem key count element #移除指定的值,可以指定个数
ltrim key start stop #截取指定的元素
由下图可见,这个命令会截断集合,并覆盖到原集合
rpoplpush source destination #移除指定集合的最后一个元素,并把它添加到另外一个集合
lset key index value #给指定集合下标添加值,如果集合或下标不存在,则会报错
可以用来做替换、更新操作
linsert key before|after pivot element #向指定集合指定元素后面或前面添加元素
当集合中有两个相同的值时,则在左侧开始匹配到的第一个值插入
总结
- 它实际上是一个链表,before Node after,left,right 都可以插入值
- 如果key不存在,创建新的链表
- 如果key存在添加内容
- 如果移除了所有的值,就变成了空列表,也表示不存在!
- 在两边插入或改动值效率最高,对中间元素操作,效率来说效率会低一些!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。