Redis中Ipush和rpush相关简易说明
lpush和rpush概念省流:都是向表中从左到右插入值,lpush是从表头插入,rpush是从表尾插入lpush演示说明rpush演示说明在同一list中混合使用的演示lpop和rpop概念省流:lpop和rpop都是移除并获取被移除的元素,lpop是从表头,rpop是从表尾lpop和rpop简单演示拓展结语
lpush和rpush概念
Ipush:将一个或多个值value插入到列表key的表头,并且各个值value按从左到右的顺序依次插入。 rpush:将一个或多个值value插入到列表key的表尾,并且各个值value按从左到右的顺序依次插入。
省流:都是向表中从左到右插入值,lpush是从表头插入,rpush是从表尾插入
lpush演示说明
使用lpush创建list
lpush list a,b,c
当输入代码后,其真正执行结果相当于按顺序执行三段不同代码
1.lpush key a
2.lpush key b
3.lpush key c
当输入第1段代码时list为 a 此时a为表头第0个元素
当输入第2段代码时list为 b,a 因为是从左到右插入表头,所以b从左插入到a前面成为表头第0元素
当输入第3段代码时list为 c,b,a 因为c最后执行也是从左到右插入,所以插到b前面成为第0个元素
所以在执行lrange list 0 -1 时结果为
(1)"c"
(2)"b"
(3)"a"
rpush演示说明
使用rpush创建list
rpush list a,b,c
当输入代码后,其真正执行结果相当于按顺序执行三段不同代码
1.rpush key a
2.rpush key b
3.rpush key c
当输入第1段代码时list为 a 此时a为表头第0个元素
当输入第2段代码时list为 a,b 因为是从左到右插入表尾,所以b从左插入到a后面成为表尾第1元素
当输入第3段代码时list为 a,b,c 因为c最后执行也是从左到右插入,所以插到b后面成为第2个元素
所以在执行lrange list 0 -1 时结果为
(1)"a"
(2)"b"
(3)"c"
在同一list中混合使用的演示
使用lpush创建list
lpush list a,b,c
此时查询结果为
(1)"c"
(2)"b"
(3)"a"
输入rpush list d
此时查询结果为
(1)"c"
(2)"b"
(3)"a"
(4)"d" 因为rpush是从左往右插入表尾,所以直接插到a后面成为最后一个元素
使用rpush创建list
rpush list a,b,c
此时查询结果为
(1)"a"
(2)"b"
(3)"c"
输入lpush list d
此时查询结果为
(1)"d"
(2)"a"
(3)"b"
(4)"c" 因为lpush是从左往右插入表头,所以直接插到a前面成为第0个元素
lpop和rpop概念
lpop key :移除并获取列表的第一个元素 rpop key :移除并获取列表最后一个元素
省流:lpop和rpop都是移除并获取被移除的元素,lpop是从表头,rpop是从表尾
lpop和rpop简单演示
现有键名为”list“的列表,包含以下元素[a,b,c,d]
输入lpop list
此时list元素变为[b,c,d],并且返回被移除的元素"a"
继续输入rpop list
此时list元素变为[b,c],并且返回被移除的元素"d"
拓展
当一起使用 lpush 和 lpop 时其作用相当于栈(先进后出)
举例有个list表,现在往里面插入元素
首先输入lpush a
再输入lpush b
再输入lpush c
此时list表为
(1)"c"
(2)"b"
(3)"a"
使用lpop list 后list为
(1)"b"
(2)"a"
此时可以发现最先插入的元素a还在,最后插入的元素c已经被移除,符合栈先进后出,后进先出的规则
在实际应用中可以运用在函数调用栈、撤销操作、浏览器的历史记录等
当一起使用 lpush 和 rpop 时其作用相当于队列(先进先出)
举例有个list表,现在往里面插入元素
首先输入lpush a
再输入lpush b
再输入lpush c
此时list表为
(1)"c"
(2)"b"
(3)"a"
使用rpop list 后list为
(1)"c"
(2)"b"
此时可以发现最先插入的元素a被移除,符合队列先进先出规则
在实际应用中可以运用在消息队列,任务调度,排队系统等
结语
首次写博客,如有错误和不足还望指正和多多包含,感谢
好文阅读
发表评论