惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Full Disclosure
Recorded Future
Recorded Future
T
Tenable Blog
S
Securelist
C
CERT Recently Published Vulnerability Notes
T
Threatpost
S
Schneier on Security
A
Arctic Wolf
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
Know Your Adversary
Know Your Adversary
P
Privacy International News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Register - Security
The Register - Security
Cisco Talos Blog
Cisco Talos Blog
AWS News Blog
AWS News Blog
K
Kaspersky official blog
T
True Tiger Recordings
T
Threat Research - Cisco Blogs
V
Vulnerabilities – Threatpost
P
Palo Alto Networks Blog
T
The Exploit Database - CXSecurity.com
小众软件
小众软件
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
T
Tor Project blog
Spread Privacy
Spread Privacy
Malwarebytes
Malwarebytes
P
Proofpoint News Feed
F
Fox-IT International blog
F
Fortinet All Blogs
P
Privacy & Cybersecurity Law Blog
G
GRAHAM CLULEY
量子位
Latest news
Latest news
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
Project Zero
Project Zero
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
Martin Fowler
Martin Fowler
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
I
Intezer
博客园_首页
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Darknet – Hacking Tools, Hacker News & Cyber Security

Redis

[程序员] 发现一个支持云同步的 Redis GUI 工具: RedisViewer 阿里云 Redis 命中率计算与监控的问题 Redis 运行一段时间后报错导致挂掉,有什么办法解决呢? Redis 缓存数据 支持 WinXP/2003 的 Redis 服务端 怎么才能学好 redis,有什么好的教程或者 blog 推荐吗? 线上服务 redis 查询超时排查求教 有木有安卓 app 的 client 端呀? 除了 Tiny RDM 之外还有什么比较好用的 Redis GUI 工具么? Redis 支持 Hash 字段单独设置过期时间 Redis 加上密码后,整体性能下降 20%? 新学 redis 集群的疑惑 Garnet 真比 Redis 快吗? Redis 几乎每小时都出现大量超时,求助 问一下大家 redis 的配置 Redis 怎样将字节串传递给 lua 脚本? 微软 Garnet 的发展前景如何,有没有可能替代 Redis? 业内有没有把 redis 开启 aof=always 当做数据库使用的? 有谁试过 redis 的 string 自增性能吗, 我这怎么是个位数? 突然想起一个问题,你们用的 redis 有崩过吗?是什么原因崩的? 关联表查询结果的 Redis 缓存如何设计 API 请求如何方便的做并发测试? 请教兄弟们一个问题, datagrip 连接 redis 如何显示 redis 键的 过期时间呢? 关于 Redis RESP3 的想法 轻便式 Redis Monitor 面向研发人员图形可视化监控平台 Redis 中使用 pipeline 执行命令时,有单次执行数量的限制吗? [故障模拟]redis cluster 3 机 3 主 6 从,主节点都转移到了其中一台机器上,然后这台机器宕机 你们现在连接 redis 集群是用的什么工具,可以分享一下下载链接吗? 求教一下 Redis 哨兵模式下,主从延迟问题 想问下大佬 40M 的字符串适合放到 redis 缓存吗? redis 有时取不到值 redis 集群中 执行事务 或者 lua 脚本 涉及到多个 key 时,这些 key 要求在同一个节点还是同一个 slot? redis 7 所有命令都是原子的吗? Redis 是鸡肋吗? Redis 服务挂了,一段时间后又恢复,不会造成缓存与数据库不一致吗? 为什么 MySQL 有缓存,还要使用 Redis? 关于缓存一致性问题,不知道我这个方案是否可行 redis 集群获取不到连接 用 redis 直接替换 app/物联网的 mq 服务器的可行性大吗?怎么对客户端进行限制 redis 怎么裁剪 zset 只保留排名前 100 的数据 缓存失效后先返回再触发更新的场景要怎么处理? 关于 redis 一个小问题(随机性) 求教大佬,线上 redis cluster 中适合使用 redis lua script 吗?以及使用时有什么注意事项? 怎么使用命令批量删除匹配的 key 值? 对 redis 的 zset 做分片的时候怎么选择分片个数 关于消息推送方案的讨论 Redis 的 zset 按 score 排序做分页的时候怎么保证数据不丢失? redis 的 zset 如果打散成多个 zset 的话,如果要分页查询怎么处理呢? 关于社区场景下,用户已读文章不再推荐这种需求实现方案的探讨 一个 abtest 实验中 redis 设计的思考
Redis Stream 实现 MQ 的可行性
xiaohupro · 2025-02-27 · via Redis

早在 4 年前,当我发现 Redis5 中增加了 Stream 类型后我就觉得它的这些特性完全可以实现一个完整的 MQ 中间件功能,当时我还在交控工作,当时的项目刚好涉及到大量数据入库的一个需求,当时这个项目不算很大,所以我就想把这个新的技术引入到项目中,实现一个轻量级的基于 Redis 的消息队列。

最终基本上实现了这个功能,当时也做了一个基于 SpringBoot 的 Demo ,后来又改了一版基于 Jedis 版本的,因为可以自己定义和操作多线程,更加灵活自由的实现一些细节。

最近提离职后正在交接期,自己的时间比较多,又翻出这个早起的 Demo ,想改造一下,用到我的心情记录员项目中,如果精力和时间有的话我更想将它完善为一个完整的、可复用的项目。

心情记录员小程序为什么要用到这个?以及为什么不用其他成熟的 RabbitMQ ,首先不用其他成熟的原因是我不想搞太多中间件,一个项目中 Redis 安装是大多数情况,因此我想在保持单体应用的基础上实现一个 MQ ,另外的一个原因就是折腾,这也是我本人的一个“缺点”,什么都喜欢自己折腾一下,验证可行性。接下来说说应用场景吧,心情记录员这款小程序目前调用的 AI 是 Kimi 的平台,目前因为是前期,因此是免费版本,并发数限制到了 1 ,这就会导致一个问题,如果同时有两个或者多个(意淫一下,哈哈哈)同时点了记录的时候,这时候有一个肯定会报错,这时候就可以用到消息队列了,将请求的数据先放入队列,等前一个 AI 生成结束后再次调用,就这?……,一个队列不就搞定了吗?当然还有场景了,那就是目前 AI 生成我采用的是 Stream 流式返回,而我是在点击记录后就开始生成,点击记录后会跳转到结果页面,为了使用户跳过去立马就感觉到在生成,因此我就将调用 AI 接口的动作提前到跳转页面前点击记录按钮后,然后给一定到 Loading 延迟在跳转,跳转到结果页后建立 WebSocket 连接,根据 openId 标识接收消息,这时候这个消息其实已经在上一步中在生成了,这里就可以用到消息队列了,根据对应的 openId 到消息队列中取内容,服务端的 WebSocket 只需要根据标识从消息队列中缓存的生成结果进行返回即可,提升了响应速度。

大概流程就像下图这样: 心情记录员.drawio.png

4 年前这个项目的库和博客:

Gitee-redismq (原谅我以前使用 Gitee 的行为,哈哈哈)

CSDN 博客(如果对 CSDN 排斥可以访问下面我自己网站的文章)

个人网站文章地址