内容简介:四)redis 列表类型
列表类型,可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段
列表类型内部是使用双向链表实现的,所以向列表两端添加元素的时间复杂度是 o(1),获取越接近两端的元素速度就越快
链表的代价是通过索引访问元素比较慢
向列表两端添加元素
向列表左边添加元素,返回增加后列表的长度
LPUSH key value1 value2
127.0.0.1:6379> LPUSH number 1 (integer) 1 127.0.0.1:6379> LPUSH number 1 2 3 (integer) 4
向列表右边增加元素,返回增加后列表的长度
RPUSH key value1 value2
127.0.0.1:6379> RPUSH number 7 8 9 (integer) 7
向列表两端移除元素
向左边移除元素,返回被移除的元素
127.0.0.1:6379> LPOP number "3"
向右边移除元素,返回被移除的元素
127.0.0.1:6379> RPOP number "9"
获取列表中元素的个数
当键不存在是,返回 0
127.0.0.1:6379> LLEN number (integer) 5
获取列表片段
可以根据索引范围获取某一段数据,索引从 0 开始
LRANGE key startIndex stopIndex
127.0.0.1:6379> LRANGE number 0 1 1) "2" 2) "1"
LRANGE
也支持负索引,比如 -1 表示最右边的第一个元素
127.0.0.1:6379> LRANGE number -2 -1 1) "7" 2) "8"
所以,我们使用 LRANGE number 0 -1
可以获取列表中的所有元素
如果 start 的索引位置比 stop 靠后,返回空列表
如果 stop 大于实际索引范围,则会返回到列表最右边的元素
删除列表中指定的值
LREM key count value
会删除列表中前 count 个值为 value 的元素,返回实际删除的元素个数
- 当 count > 0 时,会从左边开始删除
- 当 count < 0 时,会从右边开始删除
- 当 count = 0 时,会删除所有
127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "1" 3) "1" 4) "7" 5) "8" 127.0.0.1:6379> LREM number 1 2 (integer) 1 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "1" 3) "7" 4) "8"
获取和设置指定索引的元素值
LINDEX key index
127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "1" 3) "7" 4) "8" 127.0.0.1:6379> LINDEX number 1 "1"
LSET key index value
127.0.0.1:6379> LSET number 1 2 OK 127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "2" 3) "7" 4) "8"
只保留列表指定片段
删除指定范围之外的所有元素,指定范围和 LRANGE 一致
LTRIM key startIndex endIndex
127.0.0.1:6379> LRANGE number 0 -1 1) "1" 2) "2" 3) "7" 4) "8" 127.0.0.1:6379> LTRIM number 1 2 OK 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "7"
向列表中插入元素
LINSERT key BEFORE | AFTER pivot value
LINSERT 会在列表中从左到右查找值为 pivot 的元素,然后根据第二个参数 BEFORE | AFTER 决定将值插入到该元素后面还是前面
127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "7" 127.0.0.1:6379> LINSERT number AFTER 2 3 (integer) 3 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "7" 127.0.0.1:6379> LINSERT number BEFORE 7 4 (integer) 4 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4" 4) "7"
将元素从一个列表转移到另一个列表
RPOPLPUSH source destination
把 source 右边的第一个元素弹出给 destination
127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4" 4) "7" 127.0.0.1:6379> RPOPLPUSH number numberCopy "7" 127.0.0.1:6379> LRANGE numberCopy 0 -1 1) "7" 127.0.0.1:6379> LRANGE number 0 -1 1) "2" 2) "3" 3) "4"
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- python内置数据类型之列表
- Python基本数据类型之列表
- redis 基本数据类型-列表(List)
- python3 第十二章 - 数据类型之List(列表)
- Android 复杂的多类型列表视图新写法:MultiType 3.0
- C#列表到列表转换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
树莓派学习指南
[英]Peter Membrey、[澳]David Hows / 张志博、孙峻文 / 人民邮电出版社 / 2014-4 / 49.00元
树莓派(Raspberry Pi)是一款基于Linux系统的、只有一张信用卡大小的卡片式计算机。由于功能强大、性能出色、价格便宜等特点,树莓派得到了计算机硬件爱好者以及教育界的欢迎,风靡一时。 《树莓派学习指南(基于Linux)》是学习在树莓派上基于Linux进行开发的一本实践指南。全书共3个部分11章,第一部分是前两章,讲述如何设置和运行图形用户界面(GUI)。第二部分是第3章到第7章,讲......一起来看看 《树莓派学习指南》 这本书的介绍吧!