聊聊 Redis Stream】的更多相关文章

前言 聊起 redis 咱们大部分后端猿应该都不陌生,或多或少都用过.甚至大部分前端猿都知道. 数据结构: string. hash. list. set (无序集合). setsorted(有序集合), 运维方面 : 持久化,主从复制,集群,故障恢复 , 园子里已经由大佬科普过了,官方文档也能查到, 这里就不细说 redis的“发展起家史”. 咱们今天就聊聊redis的缓存应用场景(不推荐用redis做分布式锁),redis常见操作(击穿,雪崩,缓存数据量过大等),常见问题及处理方式.怎么用到…
最近,小黑哥的一个朋友出去面试,回来跟小黑哥抱怨,面试官不按套路出牌,直接打乱了他的节奏. 事情是这样的,前面面试问了几个 Java 的相关问题,我朋友回答还不错,接下来面试官就问了一句:看来 Java 基础还不错,Java HashMap 你熟悉吧? 我朋友回答.工作经常用,有看过源码. 我朋友本来想着,你随便来吧,这个问题之前已经准备好了,随便问吧. 谁知道,面试官下面一句: 那好的,我们来聊聊 Redis 字典吧. 直接将他整蒙逼. 小黑哥的朋友由于没怎么研究过 Redis 字典,所以这题…
写在前面 我一直以来使用redis的时候,很多低烈度需求(并发要求不是很高)需要用到消息队列的时候,在项目本身已经使用了Redis的情况下都想直接用Redis来做消息队列,而不想引入新的服务,kafka和RabbitMQ等: 奈何这兄弟一直不给力: 虽然 Redis 的Pub/Sub 是实现了发布/订阅的,但这家伙最坑的是:丢数据 由于Pub/Sub 只是简单的实现了发布订阅模式,简单的沟通起生产者和消费者,当接收生产者的数据后并立即推送或者说转发给订阅消费者,并不会做任何的持久化.存储操作.由…
一.背景 Stream类型是 redis5之后新增的类型,在这篇文章中,我们实现使用Spring boot data redis来消费Redis Stream中的数据.实现独立消费和消费组消费. 二.整合步骤 1.引入jar包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-re…
概况 A Redis stream is a data structure that acts like an append-only log. You can use streams to record and simultaneously syndicate events in real time. Examples of Redis stream use cases include: Event sourcing (e.g., tracking user actions, clicks,…
一.背景 最近在看redis这方面的知识,发现在redis5中产生了一种新的数据类型Stream,它和kafka的设计有些类似,可以当作一个简单的消息队列来使用. 二.redis中Stream类型的特点 是可持久化的,可以保证数据不丢失. 支持消息的多播.分组消费. 支持消息的有序性. 三.Stream的结构 解释: 消费者组: Consumer Group,即使用 XGROUP CREATE 命令创建的,一个消费者组中可以存在多个消费者,这些消费者之间是竞争关系. 同一条消息,只能被这个消费者…
聊聊基础概念 主从复制与主从替换 主从复制不同于主从替换,主从复制是正常情况下主节点同步数据到从节点:主从替换是主节点挂了之后,把从节点替换为主节点: 从节点存在的意义:备份主节点数据+负载均衡(对外提供可读操作) 从节点配置主节点的信息(两种方式): 1.临时配置:启动从节点的redis-cli执行命令[slaveof host port],host是主节点的ip,port是主节点的端口号,结果总是返回ok 2.永久配置:进入redis.conf,添加[slaveof host port]到文…
目录 一.背景 二.redis中Stream类型的特点 三.Stream的结构 四.Stream的命令 1.XADD 往Stream末尾添加消息 1.命令格式 2.举例 2.XRANGE查看Stream中的消息 1.命令格式 2.准备数据 3.举例 3.XREVRANGE反向查看Stream中的消息 4.XDEL删除消息 1.命令格式 2.准备数据 3.举例 5.XLEN查看Stream中元素的长度 1.命令格式 2.举例 6.XTRIM对Stream中的元素进行修剪 1.命令格式 2.准备数据…
背景 有时候,在微服务时代,我们需要对全部的机器节点进行通知.在常规情况下,一个请求经过负载均衡只有一个机器可以收到.那么,如何能让全部的机器都收到同样的请求呢?需要借助消息队列的监听机制,让每个节点都监听一个队列,让消息发送到所有的队列中. rabbit MQ的fanout交换机可以实现这种功能. 那么,如果想用redis去实现这个功能,有没有什么好的选择呢?毕竟仅仅为了一个全部节点的推送,就引入另外一个中间件,不是一个很经济选择. 那么Redis的Stream结构就是一个可以选择的了. 实现…
作者:梁桂钊 本文,是升级版,补充部分实战案例.梳理几个场景下利用 Redis 的特性可以大大提高效率. 随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求.因此,Redis 基于内存存储数据,可以极大的提高查询性能,对产品在架构上很好的补充.在某些场景下,可以充分的利用 Redis 的特性,大大提高效率. 缓存 对于热点数据,缓存以后可能读取数十万次,因此,对于热点数据,缓存的价值非常大.例如,分类栏目更新频率不高,但是绝大多数的页面都需要访问这个数据,因此读取频率相当高,可以考…