Redis教程

列表(list)

Preview
  • Redis的数据结构List
  • 基本命令
  • 1. LPUSH
  • 2. RPUSH
  • 3. LPOP
  • 4. RPOP
  • 5. LINDEX
  • 6. LINSERT
  • 7. LLEN
  • 8. LRANGE
  • 9. LREM
  • 应用场景

Redis的数据结构List

Redis是一种基于内存的NoSQL数据库,支持多种数据结构,其中之一就是List。List是一种有序的字符串列表,可以在列表的头部和尾部添加或删除元素,也可以在任意位置进行插入和删除操作。

基本命令

1. LPUSH

将一个或多个值插入到列表头部,如果列表不存在,则创建一个新的列表。

LPUSH key value [value ...]

示例:

LPUSH fruits apple
LPUSH fruits banana
LPUSH fruits cherry

列表fruits的内容为:

1) "cherry"
2) "banana"
3) "apple"

2. RPUSH

将一个或多个值插入到列表尾部,如果列表不存在,则创建一个新的列表。

RPUSH key value [value ...]

示例:

RPUSH fruits durian
RPUSH fruits elderberry

列表fruits的内容为:

1) "cherry"
2) "banana"
3) "apple"
4) "durian"
5) "elderberry"

3. LPOP

移除并返回列表的头部元素。

LPOP key

示例:

LPOP fruits

返回值为:

"cherry"

列表fruits的内容为:

1) "banana"
2) "apple"
3) "durian"
4) "elderberry"

4. RPOP

移除并返回列表的尾部元素。

RPOP key

示例:

RPOP fruits

返回值为:

"elderberry"

列表fruits的内容为:

1) "cherry"
2) "banana"
3) "apple"
4) "durian"

5. LINDEX

返回列表中指定索引位置的元素。

LINDEX key index

示例:

LINDEX fruits 1

返回值为:

"banana"

6. LINSERT

在列表中指定元素的前面或后面插入新元素。

LINSERT key BEFORE|AFTER pivot value

示例:

LINSERT fruits BEFORE banana apricot

列表fruits的内容为:

1) "cherry"
2) "apricot"
3) "banana"
4) "apple"
5) "durian"

7. LLEN

返回列表的长度。

LLEN key

示例:

LLEN fruits

返回值为:

5

8. LRANGE

返回指定区间内的元素。

LRANGE key start stop

示例:

LRANGE fruits 2 4

返回值为:

1) "banana"
2) "apple"
3) "durian"

9. LREM

从列表中删除指定个数的指定元素。

LREM key count value

count值为正表示从头部开始删除,count值为负表示从尾部开始删除,count值为0表示删除所有匹配的元素。

示例:

LREM fruits 2 banana

列表fruits的内容为:

1) "cherry"
2) "apple"
3) "durian"

应用场景

List在Redis中被广泛应用,以下是一些常见的应用场景:

  1. 消息队列:可以将待处理的任务存放在List中,工作者从头部取出任务进行处理,处理完成后从尾部将任务移除。

  2. 最新消息排行榜:将最新发布的消息插入List的头部,超过一定数量的消息则从List的尾部删除。

  3. 评论列表:将每条评论按时间顺序插入到List中,用户浏览评论列表时从头部依次取出。

  4. 粉丝列表 & 关注列表:将关注的用户插入到自己的关注列表中,用户的粉丝则插入到自己的粉丝列表中,可以很快地查看自己的粉丝和关注的人。