一、发布订阅与Stream1.Redis 中的发布/订阅功能发布/ 订阅系统 是 Web 系统中比较常用的一个功能。简单点说就是 发布者发布消息,订阅者接受消息,这有点类似于我们的报纸/ 杂志社之类的: (借用前边的一张图)从我们 前面(下方相关阅读) 学习的知识来看,我们虽然可以使用一个 list 列表结构结合 lpush 和 rpop 来实现消息队列的功能,但是似乎很难实现实现 消息多播 的功
SteamRedis5.0 被作者 Antirez 突然放了出来,增加了很多新的特色功能。而 Redis5.0 最大的 新特性就是多出了一个数据结构 Stream,它是一个新的强大的支持多播的可持久化的消息队 列,作者坦言 Redis Stream 狠狠地借鉴了 Kafka 的设计。Redis Stream 的结构如上图所示,它有一个消息链表,将所有加入的消息都串起来,每 个消息都有一个唯一的 I
转载 2023-08-07 17:29:08
86阅读
# 使用 Java 实现 Redis Stream Redis StreamRedis 5.0 引入的一种数据结构,允许你处理及存储大规模的消息流。在 Java 项目中,与 Redis Stream 交互通常通过 Redis 的 Java 客户端实现。比如使用 `Jedis` 或 `Lettuce` 等库。本文将逐步指导你如何使用 Java 操作 Redis Stream。 ## 步骤概
原创 10月前
165阅读
目录一、概述二、quicklist结构三、quicklistNode结构四、优缺点 一、概述QuickList是由多个 ziplist 组成的双向链表,每个 ziplist 存储一定数量的元素。优点:结合了 ziplist 和双向链表的优点,既节省空间,又提升了修改操作的性能。使用场景: 在列表键元素较多或包含较大元素时使用。ziplist补充(ziplist缺点-链式扩容&级联更新)
简介     StreamRedis 5.0引入的一种新数据类型,允许消费者等待生产者发送的新数据,还引入了消费者组概念,组之间数据是相同的(前提是设置的偏移量一样),组内的消费者不会拿到相同数据。这种概念和kafka很雷同。    在某些特定场景可以使用redisstream代替kafka等消息队列,减少系统复杂
# 使用 Redis Streams 实现广播模式 ## 引言 在现代分布式系统中,消息的传递和广播是一个非常重要的课题。Redis,作为一种高性能的内存数据存储系统,提供了多种数据结构,其中 `Streams` 是一种特殊的数据结构,具有高效的消息队列功能。本文将探讨如何利用 Redis Streams 实现广播模式,并提供实例代码和完整的流程图。 ## Redis Streams 概述
原创 2024-08-24 05:28:25
382阅读
你能聊聊redis cluster集群模式的原理吗?1、面试题redis集群模式的工作原理能说一下么?在集群模式下,redis的key是如何寻址的?分布式寻址都有哪些算法?了解一致性hash算法吗?2、面试官心理分析在以前,如果前几年的时候,一般来说,redis如果要搞几个节点,每个节点存储一部分的数据,得借助一些中间件来实现,比如说有codis,或者twemproxy,都有。有一些redis中间
转载 2024-09-26 22:32:31
46阅读
  最近面试蚂蚁金服一面的时候,和面试官聊项目问题的时候,发现我这边业务实现的top100场景好像没有实现exactly once语义,我们项目的offset是存储在zk中,然后业务处理完毕后,最后再提交offset更新到zk,这种时候就会出现一个问题就是如果业务处理完毕,数据已经更新到redis中进行了累加,然后offset更新zk没成功宕机了,再次重启的时候就会读取老的offset导致数据重复
转载 2024-06-18 05:39:29
31阅读
Java分布式篇4——Redis1、互联网架构的演变历程1.1、第一阶段数据访问量不大,简单的架构即可搞定!1.2、第二阶段数据访问量大,使用缓存技术来缓解数据库的压力不同的业务访问不同的数据库1.3、第三阶段主从读写分离。 之前的缓存确实能够缓解数据库的压力,但是写和读都集中在一个数据库上,压力又来了,一个数据库负责写,一个数据库负责读,分工合作,让master(主数据库)来响应事务性(增删改)
转载 2023-09-25 13:02:33
122阅读
redis Streamredis Streamredis 5.0版本新增加的数据结构。redis stream主要用于消息队列(MQ,Message Queue),Redis本身是有一个Redis发布订阅(pub/sub)来实现消息队列的功能,但它有个缺点就是消息无法持久化,如果出现网络断开、Redis宕机等,消息就会被丢弃。简单来说发布订阅(pub/sub)可以分发消息,但无法记录历使消息
转载 2023-06-13 15:00:41
235阅读
# Redis Stream 消息队列 Java 实现 ## 什么是 Redis StreamRedis StreamRedis 4.0 版本中引入的新数据结构,它提供了一种高性能、持久化的消息队列解决方案。通过 Redis Stream,可以实现消息的发布和订阅,支持多个消费者并发消费消息,并且可以保证消息的顺序性。 ## Java 实现 Redis Stream ### 第一
原创 2024-06-07 06:23:02
262阅读
背景:  1.Redis 之前学了个皮毛 还忘的差不多了,感觉公司项目中的Redis用的真的牛逼,so 需要深造。  2.有个同事在搞Jedis,勾起了我对知识的向往,不会用,但是很渴望。过程:  1.改造原有项目集成Jedis,引入jar包 <dependency> <groupId>redis.clients</groupId>
转载 7月前
32阅读
使用 Redis Stream 实现消息队列IntroRedis 5.0 中增加了 Stream 的支持,利用 Stream 我们可以实现可靠的消息队列,并且支持一个消息被多个消费者所消费,可以很好的实现消息队列Simple Usage首先我们来看一个简单版本的 Stream 使用,我们在代码里使用一个发布者,一个消费者来模拟一个简单的消息队列的场景来看下面的测试代码:private const 
原创 2021-04-24 11:11:52
991阅读
# 使用Spring Boot实现Redis Stream消息队列 ## 什么是Redis Stream Redis Stream 是一个新的数据结构,用于在 Redis 中保存多个有序消息。它提供了持久性、顺序性和高可靠性的消息传递。 ## 为什么选择Redis Stream Redis Stream 提供了很多传统消息队列所不能提供的功能,比如消息的持久化、消费者组、消息的确认和自动重试等
原创 2024-06-17 05:26:45
583阅读
# Redis Stream 实现消息重发方案 ## 1. 简介 在分布式系统中,消息重发是一个常见的需求。Redis Stream 是一个支持高性能、高可靠性的消息队列,可以用来实现消息的发布和订阅。本文将介绍如何利用 Redis Stream 实现消息的重发功能,以提供更可靠的消息传递。 ## 2. 方案 ### 2.1 数据结构设计 在 Redis 中,使用 Stream 数据结构
原创 2024-01-18 03:27:56
170阅读
写在前面2016年天猫双十一当天,零点的倒计时话音未落,52秒交易额冲破10亿。随后,又迅速在0时6分28秒,达到100亿!每一秒开猫大屏上的交易额都在刷新,这种时实刷新的大屏看着感觉超爽。天猫这个大屏后面的技术应该是使用流计算,阿里使用Java将Storm重写了,叫JStrom(https://github.com/alibaba/jstorm),最近学习SparkStream和Kafka,可以
深被Redis的魅力所折服,Redis不仅能快还能慢(我想也这么优秀o(╥﹏╥)o),简直利器呀咳咳咳,大家不要误会,本文很正经的啦!伙伴们跟我一起冲呀,我们一起去爬爬这座延时队列的山峰,探一探它究竟到底有高。那接下来开始我们的旅行啦~,我们都知道Redis是一种基于内存的单进程单线程数据库(Redis6.0开始之后支持多线程啦!),处理速度都非常快。那么为何Redis又能慢呢?原来,这里说的慢是
最近做了些基于redis stream做消息队列的工作,有人会问,为什么要用redis,而不是专用消息队列中间件来做呢?好吧,一个是资源不足问题,另一个也是不想增加依赖项,最终导致了不用ons、rocketmq、rabbitmq来做。曾经的概念里,用redis做消息队列都是不正统的,很脆弱的选择,一般是看不上的,直到最近的redis5 stream特性出来后,就另眼相看了。stream特性是模仿k
转载 2024-02-19 00:13:13
49阅读
拓展 1 : 耳听八方 —— StreamRedis5.0 提供了一个新的数据结构 Stream,它是一个支持多播的可持久化的消息队列。 Redis Stream 的结构如上图所示,它有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的 ID 和对应的内容。消息是持久化的,Redis 重启后,内容还在。每个 Stream 都有唯一的名称,它就是 Redis 的 key,在我
一、概述           Redis StreamRedis5.0版本新加的一个数据结构,Steam数据结构可以被视为一个日志或消息队列。它是一个由多个键值对组成的可持久化、有序、可重复的数据流。每个键值对表示一个消息,其中键表示消息的唯一标识,值标识消息的内容。  &nb
转载 2023-06-25 21:00:32
307阅读
  • 1
  • 2
  • 3
  • 4
  • 5