Redis的列表类型如何使用?

xiaoxiao2021-02-28  149

本文和大家分享的主要是redis 的列表类型相关内容,一起来看看吧,希望对大家 学习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" 来源:Enda Yuan
转载请注明原文地址: https://www.6miu.com/read-32869.html

最新回复(0)