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

Redis和三大消息队列

中间件核心概念解析

1. Redis

Redis是一种高性能的内存数据库,支持多种数据结构和持久化机制,常用于缓存、队列等场景。

(1)核心数据结构

数据结构特性与典型应用场景
String存储文本、数值(如计数器),支持原子操作(INCRINCR)
Hash存储对象(如用户信息:user:id:1→{name:"Alice",age:25}user:id:1→{name:"Alice",age:25})
List双向链表,实现队列(LPUSH/RPOPLPUSH/RPOP)或栈(LPUSH/LPOPLPUSH/LPOP)
Set无序集合,支持交并差集操作(如去重、共同好友)
ZSet有序集合,按分值排序(如排行榜:ZADDleaderboard100"user1"ZADDleaderboard100"user1")
HyperLogLog基数统计(估算不重复元素数量,误差约0.81%0.81%)

(2)持久化机制

  • RDB(快照)

    • 定时生成内存数据快照(二进制文件)。
    • 优点:恢复速度快,适合备份。
    • 缺点:可能丢失最后一次快照后的数据(如宕机时)。
  • AOF(追加日志)

    • 记录所有写操作命令(文本日志)。
    • 优点:数据丢失风险低(可配置每秒同步)。
    • 缺点:文件体积大,恢复速度慢。

(3)缓存问题与解决方案

问题现象解决方案
穿透查询不存在的数据(如恶意攻击)布隆过滤器(快速判断数据是否存在)
击穿热点数据过期后,高并发请求压垮数据库互斥锁(仅允许一个线程重建缓存)
雪崩大量缓存同时过期,导致数据库瞬时压力激增设置随机过期时间(如基础时间+随机偏移基础时间+随机偏移)

2. 消息队列

消息队列用于解耦系统组件,实现异步通信与流量削峰。

(1)Kafka

  • 核心机制
    • 分区与副本
      • 每个主题(Topic)分为多个分区(Partition),支持水平扩展。
      • 每个分区有多个副本(Replica),主副本(Leader)处理读写,从副本(Follower)同步数据。
    • ISR列表
      • In-Sync Replicas(同步副本列表),只有ISR中的副本可参与选举Leader。
      • 保障数据一致性:生产者需等待所有ISR副本确认写入(acks=allacks=all)。

(2)RabbitMQ

  • 核心特性
    • Exchange路由模型:通过直连(Direct)、主题(Topic)、扇出(Fanout)等Exchange类型路由消息。
    • 消息确认机制:消费者手动ACK确认消息处理完成,避免消息丢失。

(3)RocketMQ

  • 核心功能
    • 事务消息
      1. 生产者发送半消息(暂存至Broker)。
      2. 执行本地事务并提交结果。
      3. Broker根据结果提交或回滚消息。
    • 延迟消息:支持18个预设延迟级别(如1s、5s、10s),定时触发消息消费。

对比与总结

中间件核心优势典型场景
Redis高性能内存操作,丰富数据结构缓存、计数器、实时排行榜
Kafka高吞吐量,分区与副本保障可靠性日志收集、流处理、大数据管道
RabbitMQ灵活的路由机制,强一致性保障企业级异步通信、复杂路由场景
RocketMQ事务消息与延迟消息支持,阿里生态集成电商订单、金融交易等强一致性场景

http://www.mrgr.cn/news/96188.html

相关文章:

  • STM32F103_LL库+寄存器学习笔记09 - DMA串口接收与DMA串口发送,串口接收空闲中断
  • VxKex无法通过快捷方式启动程序
  • gogs私服搭建
  • ZeroMQ介绍及如何交叉编译在嵌入式Linux下使用
  • ESP32-CAM在PlatformIO IDE里实现OTA的几个小TIPS
  • 骨密度以及骨密度测量,测量方案,意义;提高;实现方案
  • jmeter 镜像构建
  • C语言学习关键笔记
  • 数据结构C语言练习(顺序表)
  • 论文阅读笔记:Denoising Diffusion Implicit Models
  • nara wpe去混响学习笔记
  • 力扣刷题第一遍
  • Microi吾码界面设计引擎之基础组件用法大全【内置组件篇·中】
  • Leetcode算法方法总结
  • 生成器的应用 async与await实现
  • 【leetcode hot 100 347】前 K 个高频元素
  • centos8上实现lvs集群负载均衡nat模式
  • mysql--主从复制--部署
  • 循环神经网络(RNN)
  • 大数据(2)Hadoop架构深度拆解:HDFS与MapReduce企业级实战与高阶调优