数据类型: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为阻塞时间, 必须设置,否则报错。
相关推荐
余额瞒着我当琳6 小时前
红黑树的实现--红黑树的概念、规则、效率、结构、旋转、查找、验证
数据结构·c++·算法
程序员南飞6 小时前
win系统安装minio
java·数据结构·算法
w_zero_one8 小时前
链表(4)
java·数据结构·算法
白山编程大哥9 小时前
C语言篇:语法进阶
c语言·数据结构·算法
Logic10110 小时前
C语言/数据结构动态规划题解:爬楼梯(含坏台阶)——避开障碍物的路径计数
c语言·数据结构·动态规划·时间复杂度·空间复杂度·算法题·爬楼梯
All for pursuit.11 小时前
【回溯-6】79.单词搜索
数据结构·c++·算法·leetcode
Benny_Tang12 小时前
AT_arc180_d [ARC180D] Division into 3 题解
数据结构·c++·算法
殷色玫瑰12 小时前
C++ STL:stack、queue、priority_queue 与容器适配器详解
java·开发语言·数据结构·c++·算法·visualstudio
秋名RG14 小时前
时间复杂度、空间复杂度与算法稳定性详解
数据结构·算法·排序算法
白色的北极熊14 小时前
c语言 求余运算符
c语言·数据结构·算法