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

Redis和MQ的区别

redis是一个高性能的key-value数据库,支持消息推送功能,可以当做一个轻量级的队列服务器使用。

redis只是提供一个高性能的、原子操作内存键值队,具有高速访问能力,虽然可以做消息队列的存储,但不具备消息队列的任何功能和逻辑。

redis2.0开始支持发布/订阅指令,发布者调用redis的pushlish方法往特定的channel发送消息,订阅者在初始化的时候订阅该channel,有消息就会立即接收。

redis消息推送多用于实时性较高的消息推送,并不保证可靠。MQ保证可靠但有一些延迟。

redis发布订阅除了表示不同的topic外,并不支持分组。MQ发布消息,多个订阅者可以分组,同一个组里只有一个订阅者会收到该消息。

mq的优势在于提供可靠的队列服务,可以做到异步,redis主要用于缓存,redis的发布订阅模块,可实现及时性,且可靠性低的功能。

1.可靠性

redis:没有机制保证消息的可靠性,发布一条消息没有对应的订阅者的话,这条消息将丢失,不会存在内存中。

mq:具有消息确认机制,发布一条消息,没有消费者消费该队列,这条消息一直存放在队列中,直到有消费者消费了该条消息,保证消息的可靠消费。

2.实时性

redis实时性高,redis是高效的缓存服务器,所有数据到存在内存中,所以具有更高的实时性。

3.消费者负载均衡

mq队列可以被多个消费者同时监控消费,但每一条消息只能消费一次,由于mq的消费确认机制,因此能够根据消费者的消费能力调整负载。

redis发布订阅模式,一个队列可被多个消费者同时订阅,消息到达时,会将消息一次发送给每个订阅者,是一种消息的广播形式,redis本身不做消费者的负载均衡,因此消费效率存在瓶颈。

4.持久性

redis:redis的持久化是针对整个redis缓存,可将整个redis实例持久化到磁盘来做备份,以防止异常情况下导致数据丢失。

mq:每条消息都可以选择持久化,持久化粒度更小,更灵活。

5.队列监控

mq实现了后台监控平台,可在平台上看到所有创建的队列的详细情况。redis没有监控平台。

6.性能

发布消息时,数据较小时,redis性能高于mq,数据大小超过10K时redis比较慢。读取消息时,无论数据大小,redis性能高于mq。

总结:

redis:轻量级,低延迟,高并发,低可靠性。

mq:重量级,高可靠,一步,不保证实时。

参考:redis 和 mq的区别 - CH|heyi - 博客园

相关文章:

  • SMT贴片加工费控制与优化实践指南
  • 基于大模型的急性肠套叠全流程预测与诊疗方案研究报告
  • JVM考古现场(二十六):执剑人·降维打击的终极审判
  • puppeteer注入浏览器指纹过CDP
  • PyTabKit:比sklearn更强大的表格数据机器学习框架
  • 2025.04.26-淘天春招笔试题-第一题
  • C#进阶学习(十四)反射的概念以及关键类Type
  • C#中的弱引用使用
  • 深入详解人工智能数学基础——微积分中拉格朗日乘数法在GAN训练中的应用
  • (23)VTK C++开发示例 --- 读取所有的PolyData类型示例
  • Apache NetBeans 25 发布
  • dl学习笔记(13):从强化学习到PPO
  • MySQL之视图
  • 基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述
  • 大数据模型现状分析
  • 小程序Npm package entry file not found?
  • 定制一款国密浏览器(12):分析SM2签名算法的实现
  • HTTP 协议深度解析:从基础到实战的完整指南
  • Qt动态库信号崩溃问题解决方案
  • 【实战】基于 Hugging Face 的 LLM 高效微调全解析
  • 西北大学党委副书记吕建荣调任西安财经大学党委书记
  • 为国出征指纹却无法识别?他刷新了我军在这一项目的最好成绩
  • 恒瑞医药一季度营收72亿元,净利增超36%:授权交易推动利润增长
  • “两高”司法解释:升档为境外非法提供商业秘密罪的量刑标准
  • 生于1982年,孙晋出任共青团广西壮族自治区委员会书记
  • 特朗普支持率降至新低:宣布关税后骤降,选民最不满经济表现