常用来制作队列,当然lpush+rpop也能做栈
向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误。
可以使用一个命令把多个元素打入队列,只需要在命令后面指定多个参数。元素是从左到右一个接一个从列表尾部插入。 比如命令 RPUSH mylist a b c 会返回一个列表,其第一个元素是 a ,第二个元素是 b ,第三个元素是 c
#情况1 key不是列表 127.0.0.1:6379> set list2 test OK 127.0.0.1:6379> RPUSH list2 1 2 3 (error) WRONGTYPE Operation against a key holding the wrong kind of value #情况2 正常情况 127.0.0.1:6379> RPUSH list1 1 2 3 (integer) 3 127.0.0.1:6379> LRANGE list1 0 -1 1) "1" 2) "2" 3) "3"
将值 value 插入到列表 key 的表尾, 当且仅当 key 存在并且是一个列表。 和 命令相反, 当 key 不存在时,RPUSHX 命令什么也不做。
#情况1 正常情况list存在以刚刚的list1举例 127.0.0.1:6379> RPUSHX list1 4 (integer) 4 127.0.0.1:6379> LRANGE list1 0 -1 1) "1" 2) "2" 3) "3" 4) "4" #情况2 list不存在,不操作直接返回0 127.0.0.1:6379> RPUSHX list3 4 (integer) 0
移除并返回存于 key 的 list 的最后一个元素。
#情况1list不存在的情况 127.0.0.1:6379> RPOP list3 (nil) #情况2 非list 127.0.0.1:6379> get list2 "test" 127.0.0.1:6379> RPOP list2 (error) WRONGTYPE Operation against a key holding the wrong kind of value #情况3 正常情况 127.0.0.1:6379> LRANGE list1 0 -1 1) "1" 2) "2" 3) "3" 4) "4" 127.0.0.1:6379> RPOP list1 "4" 127.0.0.1:6379> LRANGE list1 0 -1 1) "1" 2) "2" 3) "3" #情况4 当list为空的情况 127.0.0.1:6379> RPOP list (nil)
设置 index 位置的list元素的值为 value。
当index超出范围时会返回一个error。
127.0.0.1:6379> LRANGE list1 0 -1 1) "1" 2) "2" 3) "3" 127.0.0.1:6379> LSET list1 0 0 OK 127.0.0.1:6379> LRANGE list1 0 -1 1) "0" 2) "2" 3) "3"
修剪(trim)一个已存在的 list,这样 list 就会只包含指定范围的指定元素。start 和 stop 都是由0开始计数的, 这里的 0 是列表里的第一个元素(表头),1 是第二个元素,以此类推。
LTRIM
的一个常见用法是和 / 一起使用。此场景可用来纪录日志,类似环形队列。以为空间是定长 例如:
127.0.0.1:6379> LRANGE list1 0 -1 1) "0" 2) "2" 3) "3" 127.0.0.1:6379> LTRIM list1 0 1 OK 127.0.0.1:6379> LRANGE list1 0 -1 1) "0" 2) "2"
把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。
当 key 不存在时,这个list会被看作是空list,任何操作都不会发生。
当 key 存在,但保存的不是一个list的时候,会返回error。
#下面例子是在2后插入3在2前插入1.
127.0.0.1:6379> LRANGE list1 0 -1 1) "0" 2) "2" 127.0.0.1:6379> LINSERT list1 AFTER 2 3 (integer) 3 127.0.0.1:6379> LINSERT list1 BEFORE 2 1 (integer) 4 127.0.0.1:6379> LRANGE list1 0 -1 1) "0" 2) "1" 3) "2" 4) "3"
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
使用Entrust扩展包在laravel 中实现RBAC的功能
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
网友评论