数据类型:List

List目录

list是redis提供的"列表"数据类型, 就类似于我们使用过的链表, 支持头部操作和尾部操作, 不支持随机访问, 如果随机操作某个下标, 时间复杂度为O(N)。

list的底层数据结构是quicklist。 quicklist是双向链表和压缩列表(ziplist)的结合体。 每一个quicklist节点就是一个压缩列表。

Lpush和Rpush

复制代码
lpush key value [value...]
rpush key value [value...] 
  • lpush和rpush都是向key所在的键值对的值中插入数据。 lpush代表头插, rpush代表尾插。
  • 可以同时插入多个数据。
  • O(1) , 其实应该是插入数据的个数

Lpop和Rpop

复制代码
lpop key
rpop key
  • lpop和rpop都是从key对应的值中弹出数据, lpop代表头删, rpop代表尾删。
  • O(1)

Llen

复制代码
llen key
  • 获取key的值的长度。
  • 这里的llen的第一个l代表的意思是list。 而lpush中的l代表的是left。
  • O(1)

Lindex

复制代码
lindex key index
  • 获取某个值的某个下标处的数据。
  • index为要获取的位置下标, 下标从0开始。
  • O(N)

Lset

复制代码
lset key index value
  • 将对应的值的某个下标处的数据修改成value
  • index为要修改的值的位置下标, 下标从0开始;value为修改后的值。
  • O(N)

Lrange

复制代码
lrange key start end
  • 获取对应的值的start 到end的值。 下标从0开始。
  • 如果end为 -1, 则代表最后一个位置, -2代表倒数第二个位置。
  • O(N)

Ltrim

复制代码
ltrim key start end
  • 将对应的值截取,只剩余start 到end之间的值。下标从0开始。
  • 如果end为 -1, 则代表最后一个位置, -2代表倒数第二个位置。
  • O(N)

blpop和brpop

复制代码
blpop key [key ...] timeout
brpop key [key ...] timeout 
  • 对多个key进行删除。
  • blpop和brpop为阻塞删。只有当后面的key中有至少一个成功删除了数据, 才会返回,否则一直阻塞。
  • timout为阻塞时间, 必须设置,否则报错。
相关推荐
叼烟扛炮13 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
MegaDataFlowers17 小时前
206.反转链表
数据结构·链表
CN-Dust18 小时前
【C++】while语句例题专题
数据结构·c++·算法
xieliyu.20 小时前
Java手搓数据结构:从零模拟实现无头双向非循环链表
java·数据结构·链表
如何原谅奋力过但无声1 天前
【灵神高频面试题合集01-03】相向双指针、滑动窗口
数据结构·python·算法·leetcode
jieyucx1 天前
Go 数据结构入门:线性表、顺序表、链表
数据结构·链表·golang
阿维的博客日记1 天前
zset为什么要用到skiplist+Dict的数据结构
数据结构·skiplist
编程之升级打怪1 天前
KMP查询算法的匹配串的前缀后缀相同的最大长度
数据结构
没文化的阿浩1 天前
【数据结构】排序(2)——直接选择排序、堆排序
数据结构·算法·排序算法
承渊政道1 天前
【动态规划算法】(子数组系列问题建模与解题思路精讲)
数据结构·c++·学习·算法·leetcode·动态规划·哈希算法