Redis基本数据类型List常用操作命令
Redis数据类型List操作
在redis里,可以把list巧妙的运用成 栈、队列、阻塞队列等。
一、push 插入元素
1. lpush,在头部插入
将一个值或者多个值,插入到列表的头部。
使用lpush
,这里的l可以看成left,也就是在左边插入,所以目前list是这样的[three, two, one]
。
2. rpush,在尾部插入
接下来,使用rpush
,在右边也就是在列表尾部插入元素。
此时,list是这样的[three, two, one, right1, right2]
。用lrange list 0 -1
来获取下:
二、range 通过区间获取元素
可以想象成python里的range()
,通过传入开始和结束的下标,获取元素。
三、pop 移除元素
既然上面可以左右的添加操作,那么移除自然也有左右之分了。
移除操作,返回的是被移除的元素。
1. lpop 左边移除
2. rpop 右边移除
四、lindex 通过下标获取元素
五、llen 获取list长度
返回列表的长度。
六、lrem 移除指定元素
可以指定移除元素,并且指定数量。
现在list里有3个yi222,我要移除2个。
七、ltrim 修剪
通过ltrim
只保留指定的部分,去掉其他的部分,被截取的list发生改变。
这里下标从1到4的都保留,其他都被去掉了。
八、组合命令 rpoplpush 移除并添加
这是组合命令,移除list最后一个元素,并且将它添加到另一个list。
这里list
是原列表,list2
是目标列表,目标列表不存在会去创建。
九、exists 判断key 是否存在
存在返回1,不存在就返回0。
十、lset,设置指定下标的值
当索引参数超出范围,或对一个空列表进行 LSET 时,返回一个错误。
十一、linsert,指定位置之前/之后插入值
之前
这是在元素test
之前,插入元素before_test
。
之后
这是在元素test
之后,插入元素after_test
。
十二、小结
从上述list的操作中,可以观察出它的一些特点:
它实际上是一个链表,节点的左右都方便插入。如果key不存在,会创建新的链表。如果key存在,就新增元素。如果移除了所有的值,就是空链表,也就是不存在。在两边插入或者改动值,效率最高。中间的元素操作,效率相对低。
list在实际中可以灵活运用,比如队列,栈,都能用list来实现。
本篇文章到此结束,如果您有相关技术方面疑问可以联系我们技术人员远程解决,感谢大家支持本站!