前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >redis中List命令的基础操作

redis中List命令的基础操作

作者头像
GeekLiHua
发布2025-01-21 17:30:56
发布2025-01-21 17:30:56
7700
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

redis中List命令的基础操作

redis中的List命令的基础操作。

基础操作

LPUSH key value1 [value2 ...]:

代码语言:javascript
代码运行次数:0
复制
LPUSH cities "Beijing" "Shanghai" "Guangzhou"

从左侧插入多个城市名称到名称为 cities 的列表中。

RPUSH key value1 [value2 ...]:

代码语言:javascript
代码运行次数:0
复制
RPUSH cities "Shenzhen" "Chengdu"

从右侧插入多个城市名称到名称为 cities 的列表中。

LPOP key:

代码语言:javascript
代码运行次数:0
复制
LPOP cities

移除并返回列表最左端的元素: “Beijing”。

RPOP key:

代码语言:javascript
代码运行次数:0
复制
RPOP cities

移除并返回列表最右端的元素: “Chengdu”。

LLEN key:

代码语言:javascript
代码运行次数:0
复制
LLEN cities

返回指定列表(cities)的长度: 4。

LRANGE key start stop:

代码语言:javascript
代码运行次数:0
复制
LRANGE cities 1 3

获取列表在给定范围内的所有元素: [“Shanghai”, “Guangzhou”, “Shenzhen”]。

LINDEX key index:

代码语言:javascript
代码运行次数:0
复制
LINDEX cities 0

返回列表中下标为 0 的元素: “Beijing”。

LINSERT key BEFORE|AFTER pivot value:

代码语言:javascript
代码运行次数:0
复制
LINSERT cities BEFORE "Guangzhou" "Nanjing"

在列表中值为 “Guangzhou” 的元素之前插入值为 “Nanjing” 的元素。

LSET key index value:

代码语言:javascript
代码运行次数:0
复制
LSET cities 2 "Hangzhou"

将列表中第三个元素的值设置为 “Hangzhou”。

LTRIM key start stop:

代码语言:javascript
代码运行次数:0
复制
LTRIM cities 1 3

对列表进行修剪,保留给定索引范围内的元素:[“Shanghai”, “Guangzhou”, “Shenzhen”]。

BLPOP key1 [key2...] timeout:

代码语言:javascript
代码运行次数:0
复制
BLPOP city_list 30

弹出(移除并获取)名称为 city_list 的列表的第一个元素,如果列表为空则阻塞等待 30 秒,直到有新元素插入或达到超时时间为止。

BRPOP key1 [key2...] timeout:

代码语言:javascript
代码运行次数:0
复制
BRPOP city_list 30

弹出(移除并获取)名称为 city_list 的列表的最后一个元素,如果列表为空则阻塞等待 30 秒,直到有新元素插入或达到超时时间为止。

BRPOPLPUSH source destination timeout:

代码语言:javascript
代码运行次数:0
复制
BRPOPLPUSH list1 list2 10

弹出名称为 list1 的列表的最后一个元素,将它插入名称为 list2 的列表的最左端,并返回这个元素的值,如果源列表为空则阻塞等待 10 秒,直到有新元素插入或达到超时时间为止。

RPOPLPUSH source destination:

代码语言:javascript
代码运行次数:0
复制
RPOPLPUSH source_list dest_list

弹出名称为 source_list 的列表的最后一个元素,将它插入名称为 dest_list 的列表的最左端,并返回这个元素的值。

具体案例

假设某个在线商店需要处理用户提交的订单,每个订单包含以下信息:

  • 订单号
  • 商品名称
  • 数量
  • 价格

为了方便管理,商店把所有订单都存在以用户 ID 为键名的列表中。每当有新订单创建,就把它添加到相应用户 ID 的列表中。

举个例子,在 Redis 中,可以通过以下命令将订单数据保存到列表中:

代码语言:javascript
代码运行次数:0
复制
RPUSH user:1001:orders "{'order_id': '20180901', 'product_name': 'iPhone X', 'quantity': 2, 'price': 8488}"

其中,user:1001:orders 是列表的键名,它表示用户 ID 为 1001 的用户的所有订单。这个列表中包含多个元素,每个元素都是一个字符串,表示一个订单信息。

如果要获取用户 ID 为 1001 的所有订单信息,可以使用以下命令:

代码语言:javascript
代码运行次数:0
复制
LRANGE user:1001:orders 0 -1

返回值为:

代码语言:javascript
代码运行次数:0
复制
1) "{'order_id': '20180901', 'product_name': 'iPhone X', 'quantity': 2, 'price': 8488}"
2) "{'order_id': '20180905', 'product_name': 'MacBook Pro', 'quantity': 1, 'price': 15088}"
...

这样,商店就成功地利用 Redis 的 List 数据类型存储和检索了订单信息,方便快捷。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • redis中List命令的基础操作
    • 基础操作
    • 具体案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档