当前位置: 首页 > news >正文

Redis中测试Stream的例子

当你想要测试 Redis 中的 Stream 功能时,可以通过 Redis 的命令行客户端或者使用任何支持 Redis 的编程语言来操作。下面我会给出一个简单的例子,使用 Redis 的命令行客户端 redis-cli 来测试 Stream 的基本功能。

准备工作

确保你已经安装并启动了 Redis 服务器。

示例测试流程

  1. 创建一个 Stream

首先,我们创建一个名为 mystream 的 Stream,并向其中添加几个条目:

127.0.0.1:6379> XADD mystream * name John age 30
"1625817353844-0"
127.0.0.1:6379> XADD mystream * name Jane age 28
"1625817369714-0"
127.0.0.1:6379> XADD mystream * name Alice age 25
"1625817383111-0"

这里使用了 XADD 命令向 mystream Stream 添加了三个条目,每个条目包含 nameage 两个字段。

  1. 读取 Stream 中的条目

使用 XRANGE 命令读取整个 Stream 中的条目:

127.0.0.1:6379> XRANGE mystream - +
1) 1) "1625817353844-0"2) 1) "name"2) "John"3) 1) "age"2) "30"
2) 1) "1625817369714-0"2) 1) "name"2) "Jane"3) 1) "age"2) "28"
3) 1) "1625817383111-0"2) 1) "name"2) "Alice"3) 1) "age"2) "25"

以上命令使用 XRANGE mystream - + 读取了 mystream Stream 中的所有条目。- 表示从最旧条目开始读取,+ 表示读取到最新条目为止。

  1. 消费 Stream 中的消息

使用 XREAD 命令消费 Stream 中的消息,这里展示如何消费一个名为 mystream 的 Stream:

127.0.0.1:6379> XREAD BLOCK 0 STREAMS mystream $
1) 1) "mystream"2) 1) 1) "1625817353844-0"2) 1) "name"2) "John"3) 1) "age"2) "30"
2) 1) "mystream"2) 1) 1) "1625817369714-0"2) 1) "name"2) "Jane"3) 1) "age"2) "28"
3) 1) "mystream"2) 1) 1) "1625817383111-0"2) 1) "name"2) "Alice"3) 1) "age"2) "25"

在这个例子中,使用 XREAD BLOCK 0 STREAMS mystream $ 命令来消费 mystream Stream 中的消息。BLOCK 0 表示以阻塞方式读取,$ 表示读取到当前最新的消息为止。

  1. 删除 Stream 中的消息

如果需要,可以使用 XDEL 命令删除 Stream 中的消息:

127.0.0.1:6379> XDEL mystream 1625817353844-0
(integer) 1

这里使用 XDEL mystream 1625817353844-0 删除了指定的消息。

总结

通过以上示例,你可以基本了解如何使用 Redis 的 Stream 功能进行消息的添加、读取和消费。根据你的实际需求和编程环境,可以将这些基本操作集成到你的应用程序中,以实现更复杂的消息流处理逻辑。

XADD mystream * name John age 30 中的星号的作用

在 Redis 的 XADD 命令中,星号 (*) 是用来让 Redis 自动生成一个唯一的 ID 给每个条目。这个 ID 由两个部分组成:时间戳和序列号。时间戳是生成 ID 时的 Unix 时间戳(以毫秒为单位),序列号是一个在同一毫秒内的递增数。

XADD 语法

基本的 XADD 语法如下:

XADD <key> <id> <field1> <value1> [<field2> <value2> ...]
  • <key>: Stream 的名称。
  • <id>: 条目的 ID,可以是自动生成的星号 (*) 或者用户指定的 ID。
  • <fieldN> <valueN>: 条目的字段和值,成对出现。

自动生成 ID

当你使用星号 (*) 时,Redis 会自动生成一个唯一的 ID。例如:

XADD mystream * name John age 30

这条命令会生成一个条目,其中的 ID 由 Redis 自动生成,例如 1625817353844-0。这个 ID 表示生成条目的时间是 1625817353844 毫秒,序列号是 0

自定义 ID

你也可以提供自定义的 ID,例如:

XADD mystream 1625817353844-0 name John age 30

在这种情况下,ID 是由你指定的,而不是由 Redis 自动生成的。使用自定义 ID 的时候,你需要确保 ID 是唯一的,否则会导致错误。

示例

  1. 自动生成 ID
127.0.0.1:6379> XADD mystream * name John age 30
"1625817353844-0"
  1. 自定义 ID
127.0.0.1:6379> XADD mystream 1625817353844-0 name John age 30
"1625817353844-0"

总结来说,使用 * 可以让 Redis 自动生成唯一的 ID,使得使用 XADD 命令更方便,因为你不需要手动生成和管理这些 ID。

http://www.lryc.cn/news/394628.html

相关文章:

  • 28 H3C SecPath F1000 概览(主要功能是总 观看全局)
  • 标准版视频检测终端功能有哪些? 捷顺高清视频车位引导系统怎么样?
  • 说明本文档目录是软件开发梳理需求常见问题QA文档,方便客户看,也方便我们的售前人员,需求分析人员,ui设计师,原型绘图人员,思维导图绘图人员查看。
  • Echarts桑基图
  • wordpress网站添加一个临时维护功能
  • 充电桩开源平台,开发流程有图有工具
  • 数据中台设计书及建设指南(中台及大数据解决技术方案)
  • 合合信息大模型“加速器”重磅上线
  • # Sharding-JDBC 从入门到精通(10)- 综合案例(三)查询商品与测试及统计商品和总结
  • ASRock Creator系列GPU:为AI推理及多GPU系统打造,采用16针电源接口的Radeon RX 7900系列显卡
  • AntV X6 图编辑引擎速通
  • 【若依前后端分离】通过输入用户编号自动带出部门名称(部门树)
  • AIGC时代程序员的跃迁——编程高手的密码武器
  • 园区智慧能源可视化:智能监控与优化能源管理
  • Linux内网端口转公网端口映射
  • 银河麒麟高级服务器操作系统(通用)安装和编译指定的python3版本
  • cs231n 作业3
  • HarmonyOS Next系列之Echarts图表组件(折线图、柱状图、饼图等)实现(八)
  • 网上怎么样可以挣钱,分享几种可以让你在家赚钱的兼职项目
  • 【DevOps】运维过程中经常遇到的Http错误码问题分析(二)
  • 数据结构练习
  • 手动安装Ruby 1.9.3并升级RubyGems
  • go语言day11 错误 defer(),panic(),recover()
  • 构建docker镜像实战
  • 生信算法9 - 正则表达式匹配氨基酸序列、核型和字符串
  • linux ext2文件系统浅析
  • 「树莓派入门」树莓派进阶02-传感器应用与交通灯项目
  • pytorch 指定GPU设备
  • 华为od-C卷200分题目6 - 5G 网络建设
  • 步进电机(STM32+28BYJ-48)