上回说到使用 Redis 的 List 实现消息队列有很多局限性,比如:
Stream 是 Redis 5.0 引入的一种专门为消息队列设计的数据类型,Stream 是一个包含 0 个或者多个元素的有序队列,这些元素根据 ID 的大小进行有序排列。 它实现了大部分消息队列的功能:
提供了很多消息队列操作命令,并且借鉴 Kafka 的 Consumer Groups 的概念,提供了消费组功能。 同时提供了消息的持久化和主从复制机制,客户端可以访问任何时刻的数据,并且能记住每一个客户端的访问位置,从而保证消息不丢失。 废话少说,先来看下如何使用,官网文档详见:https:///topics/streams-intro XADD:插入消息「云岚宗众弟子听命,击杀萧炎!」 当云山最后一字落下,那弥漫的紧绷气氛,顿时宣告破碎,悬浮半空的众多云岚宗长老背后双翼一振,便是咻咻的划过天际,追杀萧炎。 云山使用以下指令向队列中插入「追杀萧炎」命令,让长老带领子弟去执行。
Stream 中的每个元素由键值对的形式组成,不同元素可以包含不同数量的键值对。 该命令的语法如下:
消息队列名称后面的 「*」 ,表示让 Redis 为插入的消息自动生成唯一 ID,当然也可以自己定义。 消息 ID 由两部分组成:
|
|
来自: 昵称10087950 > 《JAVA》