redis中的list命令
1.添加
rpush
命令格式: rpush key value [value …]
执行效果: 向指定列表的尾部(右侧)添加一个或多个元素
时间复杂度: O (k),其中 k 是元素个数
lpush
命令格式: lpush key value [value …]
执行效果: 向指定列表的头部(左侧)添加一个或多个元素
时间复杂度: O (k),其中 k 是元素个数
linsert
命令格式: linsert key [before | after] pivot value
执行效果: 在指定列表中,在 pivot 元素之前(before)或之后(after)插入 value 元素
时间复杂度: O (n),其中 n 是 pivot 距离列表头部或尾部的距离
2.查找
lrange
命令格式: lrange key start end
执行效果: 获取指定列表中从 start 索引到 end 索引范围内的所有元素
时间复杂度: O (s+n),其中 s 是 start 偏移量,n 是 start 到 end 的范围
lindex
命令格式: lindex key index
执行效果: 获取指定列表中索引为 index 的元素
时间复杂度: O (n),其中 n 是索引的偏移量
llen
命令格式: llen key
执行效果: 获取指定列表的长度(元素个数)
时间复杂度: O (1)
3.删除
lpop
命令格式: lpop key
执行效果: 移除并返回指定列表的头部(左侧)第一个元素
时间复杂度: O (1)
rpop
命令格式: rpop key
执行效果: 移除并返回指定列表的尾部(右侧)最后一个元素
时间复杂度: O (1)
lrem
命令格式: lrem key count value
执行效果: 从指定列表中删除与 value 相等的元素,删除数量由 count 决定(count>0 从头部开始删 count 个;count<0 从尾部开始删绝对值个;count=0 删除所有)
时间复杂度: O (k),其中 k 是元素个数
ltrim
命令格式: ltrim key start end
执行效果: 保留指定列表中从 start 索引到 end 索引范围内的元素,删除范围外的所有元素
时间复杂度: O (k),其中 k 是元素个数
4.修改
lset 命令
命令格式: lset key index value
执行效果: 将指定列表中索引为 index 的元素值修改为 value
时间复杂度: O (n),其中 n 是索引的偏移量
5.阻塞操作
blpop
命令格式: blpop key [key …] timeout
执行效果: 阻塞地从第一个非空列表的头部弹出元素,若所有列表为空则等待 timeout 秒后返回
时间复杂度: O (1)
brpop 命令
命令格式: brpop key [key …] timeout
执行效果: 阻塞地从第一个非空列表的尾部弹出元素,若所有列表为空则等待 timeout 秒后返回
时间复杂度: O (1)