Redis-客户端命令

8/25/2024 redis

# List

# 介绍

列表类型是用来存储多个有序的字符串,列表中的每个字符串称为元素(element) ,一个列表最多可以存储2^32-1个元素。

列表顺序从左往右索引增加,包含正数索引和倒数索引,两者关系如下:

lpush                       rpush
          a   b   c   d   e 
正数索引    0   1   2   3   4
倒数索引   -5  -4  -3  -2  -1

1
2
3
4
5

# crud

# 将元素从列表 头部/尾部 中 插入/移除

# 列表头部插入
lpush key value [value ...]
# 列表头部移除  列表如果不存在,返回 nil
lpop key

# 列表尾部插入
rpush key value [value ...]
# 列表尾部移除  列表如果不存在,返回 nil
rpop key

# 和 lpush 区别: 当 key 不存在时,lpush会创建一个列表,而 lpushx 则会直接返回
lpushx key value [value ...]
1
2
3
4
5
6
7
8
9
10
11
12

应用:

  • lpush和rpop可以很好的实现先进先出队列
  • lpush和lpop可以很好的实现栈结构

# 随机访问

# 获取指定索引位置的元素
lindex key index

# 向列表中特定元素前面或后面插入新元素 pivot 为列表中某个元素, 返回值为插入后列表长度
linsert key BEFORE|AFTER pivot value 

# 获取列表长度, 列表不存在则返回0
llen key 

# 读取 key 中指定范围的元素
lrange key start end

# 读取 lst 列表中所有元素
lrange lst 0 -1 
# 读取 lst 列表中 第3 到 第11 个元素; [2, 10] 闭合区间
lrange lst 2 10
# 读取 lst 列表中 最后n个元素 [-3, -1] , -1:表示列表中最后一个元素
lrange lst -n -1

# 设置列表指定索引位置的元素值
lset key index value

# 移除列表中与给定值相等的元素, count 指定个数, 返回值为移除元素的数量
# count为正数:表示从列表头部开始向尾部搜索,并移除与value相等的元素
# count为负数:表示从列表尾部开始向头部搜索,并移除与value相等的元素
# count为0:移除与value相等的所有元素
lrem key count value 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

# 列表特殊操作

# 删除列表中指定范围以外的所有元素
ltrim key start stop

# 从列表中左/右取出元素,当列表中元素为空,则阻塞等待 timeout
blpop/brpop key timeout
1
2
3
4
5