跳至正文
星雨笔录
教程博客作品英语关于
Ctrl K

输入关键词,搜索教程、博客、作品与英语内容。

    查看全部结果 →
    Redis 与消息队列

    课程目录位置 111 / 175

    Redis 定位、数据模型与基本操作

    12
    1. 01Redis 是什么:内存数据结构服务器,而不只是简单的 Key-Value 缓存
    2. 02Redis 与 MySQL:职责、数据模型、持久化和查询能力的区别
    3. 03Redis 的常见用途:缓存、计数、排行榜、会话、共享状态与消息场景
    4. 04Key 命名规范:业务前缀、对象标识、环境隔离与避免 Key 冲突
    5. 05TTL:过期时间的设置、查询与更新
    6. 06常用命令:读写、删除、过期、批量操作与键空间观察
    7. 07原子命令:为什么“先读取、再计算、再写回”可能产生并发问题
    8. 08Pipeline:减少网络往返的适用场景与限制
    9. 09Redis 事务 `MULTI/EXEC`:执行特点及其与关系型数据库事务的区别
    10. 10Lua 脚本:将多个 Redis 操作组合成原子执行单元
    11. 11Redis 不等于关系型数据库:复杂关联查询与业务事实数据应如何取舍
    12. 12选择 Redis 前先回答:为什么需要它、缓存什么、如何失效、故障时怎么办

    Redis 数据类型与业务场景

    14
    1. 01String:缓存对象、计数器、验证码与简单状态
    2. 02Hash:对象字段、用户资料与局部字段更新
    3. 03List:列表、阻塞式队列模型及其适用边界
    4. 04Set:去重、交集、并集与共同关注等场景
    5. 05Sorted Set:排行榜、积分排名与按分值范围查询
    6. 06Bitmap:签到、布尔状态与位级统计
    7. 07HyperLogLog:大规模基数估算与误差边界
    8. 08GEO:地理位置存储与附近地点查询的基本能力
    9. 09Stream:消息流、消费者组、待确认消息与消息重领的基本能力
    10. 10TTL 与数据结构组合:例如排行榜是否需要过期、计数是否要重置
    11. 11数据类型选择:围绕查询方式、更新方式、数据规模和准确性要求作决定
    12. 12常见误用:把所有对象序列化成一个大 String、创建过大的集合或无界增长的 List/Stream
    13. 13底层结构只学必要原理:哈希表、跳表、紧凑编码等如何影响操作成本
    14. 14版本边界:Redis 的内部编码会随版本演进,不将某个旧版本的底层实现当作永久不变的事实

    Java 与 Spring Boot 集成

    14
    1. 01Spring Data Redis 的定位与基本依赖
    2. 02Redis 连接配置、连接工厂与连接池
    3. 03`RedisTemplate` 与 `StringRedisTemplate` 的使用场景
    4. 04Key、Value、Hash Key、Hash Value 的序列化配置
    5. 05JSON 序列化、类型信息、兼容性与反序列化风险
    6. 06常用数据类型操作:Value、Hash、List、Set、ZSet
    7. 07TTL 设置、过期策略与缓存更新
    8. 08Spring Cache:`@Cacheable`、`@CachePut`、`@CacheEvict` 的职责
    9. 09缓存 Key 设计、条件缓存、空值缓存与过期时间配置
    10. 10`@Cacheable` 与代理机制的关系:自调用、方法可见性等常见限制
    11. 11超时、连接异常、序列化异常与 Redis 不可用时的应用行为
    12. 12Redis 命令执行的可观测性:日志、慢命令、连接池与耗时
    13. 13单元测试与集成测试:命中、未命中、过期、更新、删除和 Redis 故障
    14. 14安全配置:网络隔离、ACL/凭据、TLS(按环境需要)与敏感信息保护

    缓存设计、缓存问题与数据一致性

    17
    1. 01缓存的收益与成本:延迟、内存、失效、一致性和额外运维复杂度
    2. 02Cache Aside:读时加载、更新数据库、删除缓存
    3. 03缓存写入策略:旁路缓存、读写穿透等术语的含义与常见边界
    4. 04数据库与缓存的更新顺序:为什么不存在适用于所有业务的万能顺序
    5. 05为什么常见做法是更新数据库后删除缓存,以及仍然可能失败的情况
    6. 06并发读写中的旧值回填与缓存失效竞态
    7. 07延迟双删:解决思路、依赖的假设与并非万能保证的原因
    8. 08缓存穿透:无效查询、空值缓存与布隆过滤器的边界
    9. 09缓存击穿:热点 Key 失效、互斥重建与逻辑过期思路
    10. 10缓存雪崩:集中失效、TTL 抖动、预热与限流
    11. 11热 Key:访问集中、局部热点、拆分与读扩散的取舍
    12. 12大 Key:识别、拆分、渐进删除与避免阻塞式大操作
    13. 13内存淘汰策略、过期删除与业务 TTL 的区别
    14. 14缓存命中率、回源比例、数据新鲜度与内存使用的联合观察
    15. 15多级缓存:本地缓存 + Redis 的收益、失效传播与排查复杂度
    16. 16强一致性要求:判断缓存是否适用;不能只靠设置 TTL 就宣称数据一致
    17. 17可靠失效的扩展方案:重试任务、Outbox 或订阅数据库变更的基本思路(具体消息/分布式设计在相关章节深化)

    Redis 持久化、高可用与运维

    15
    1. 01Redis 命令处理、事件循环与 I/O 多路复用的基本思路
    2. 02慢命令、大 Key、高复杂度操作对延迟的影响
    3. 03RDB:快照、恢复效率、备份用途与潜在数据丢失窗口
    4. 04AOF:写命令追加、同步策略、重写与恢复
    5. 05RDB 与 AOF:机制差异、组合方式与持久化取舍
    6. 06关闭持久化的风险:缓存用途与重要业务数据的要求不同
    7. 07主从复制:复制流、断线重连与部分重同步的基本概念
    8. 08异步复制意味着什么:故障切换时仍可能丢失最近写入
    9. 09Sentinel:监控、故障判断、主节点切换与客户端发现
    10. 10Redis Cluster:哈希槽、分片、扩缩容与故障处理
    11. 11Sentinel 与 Cluster 的定位差异:高可用与数据分片不是同一个概念
    12. 12备份、复制和高可用的区别:不能把“有副本”当成“已经做好备份”
    13. 13内存容量、碎片、淘汰、命中率、连接数、慢命令与延迟监控
    14. 14故障排查:连接超时、内存飙升、延迟升高、主从切换与缓存集中失效
    15. 15安全:禁止不必要的公网暴露、最小权限、认证、网络隔离与备份访问控制

    Redis 分布式锁、限流与消息功能边界

    14
    1. 01进程内锁、数据库锁与 Redis 锁分别能解决什么问题
    2. 02使用 `SET key value NX PX ...` 获取带租期的锁
    3. 03用唯一请求标识作为锁值,避免误删其他客户端的锁
    4. 04使用 Lua 原子校验锁值并释放锁
    5. 05锁过期、业务执行超时、进程暂停与锁失效风险
    6. 06锁续期与 Redisson:基本机制及其不构成绝对正确性保证的原因
    7. 07需要强正确性时,数据库唯一约束、版本校验或围栏令牌等补充方案
    8. 08固定窗口、滑动窗口与令牌桶限流的基本思路
    9. 09使用 Redis 做共享计数、限流与简单去重时的原子性要求
    10. 10Redis Pub/Sub:发布订阅模型与实时广播用途
    11. 11Pub/Sub 的投递边界:离线订阅者会错过消息,不能当作可靠持久队列
    12. 12Redis Streams:消息记录、消费者组、ACK、Pending 与消息重领
    13. 13Redis List、Pub/Sub、Streams 与专用 MQ 的差异
    14. 14何时选择 Redis 消息能力,何时应使用 RocketMQ/Kafka/RabbitMQ 等专用消息系统

    消息队列的定位、模型与选型

    10
    1. 01消息队列解决什么问题:异步处理、解耦、削峰与事件传播
    2. 02Producer、Broker、Consumer、Topic、Queue/Partition 与 Consumer Group
    3. 03点对点、发布订阅、工作队列与事件驱动模式
    4. 04同步调用与异步消息:响应时机、失败传播与用户体验差异
    5. 05消息体、消息 Key、业务 ID、事件类型、时间戳与 Schema 版本
    6. 06消息队列不会自动创造吞吐能力:Broker、消费者与下游依然有容量上限
    7. 07何时不需要 MQ:低复杂度同步业务、没有异步价值或缺乏运维能力的场景
    8. 08选型维度:吞吐、延迟、顺序、保留、重放、路由、事务、生态与运维成本
    9. 09Redis Pub/Sub、Redis Streams 与专用 MQ 的语义差异
    10. 10RocketMQ、Kafka、RabbitMQ 的定位:先理解业务语义,再选择产品

    消息可靠性、消费语义与故障治理

    18
    1. 01消息发送请求成功、Broker 接收、持久化与消费者处理成功是不同阶段
    2. 02生产者确认、发送失败、超时与“结果不确定”的问题
    3. 03Broker 持久化、副本与可靠性配置的基本含义
    4. 04消费确认、消费进度、Offset 与消息重新投递
    5. 05至多一次、至少一次与“恰好一次”的边界
    6. 06为什么业务消费者必须考虑重复消息与幂等处理
    7. 07幂等方案:业务唯一键、去重表、状态检查与数据库唯一约束
    8. 08全局顺序与局部顺序的代价差异
    9. 09分区、队列、消息组与顺序消费的关系
    10. 10重试策略、退避、最大重试次数与死信队列
    11. 11毒消息、持续失败、人工排查、补偿与重新投递
    12. 12延迟/定时消息与定时任务的适用边界
    13. 13消息积压:生产速率、消费速率、队列/分区数量与下游瓶颈
    14. 14消费者扩容、并发度、背压与批量消费
    15. 15消息保留、重放、重复消费与数据清理策略
    16. 16监控指标:生产失败率、消费延迟、积压量、重试量、死信量与处理耗时
    17. 17消息追踪:业务事件 ID、消息 ID、日志关联与端到端状态核对
    18. 18“发送成功”不等于“下游业务已完成”,业务状态仍需可查询、可恢复

    RocketMQ:Java 业务消息主线

    17
    1. 01RocketMQ 的定位、基本架构与适用场景
    2. 02NameServer、Broker、Producer、Consumer 等组件的职责(以所选版本官方架构为准)
    3. 03Topic、消息类型、Tag/过滤、消息 Key 与消费组
    4. 04Java 生产者:同步发送、异步发送、发送结果、超时与失败处理
    5. 05Java 消费者:消费组、并发消费、消费结果与失败处理
    6. 06普通消息:订单后续处理、通知与业务解耦
    7. 07顺序消息:消息组、局部顺序、串行消费与吞吐量之间的取舍
    8. 08延迟/定时消息:适用场景、支持的时间范围与版本差异
    9. 09消费重试、死信队列与失败消息治理
    10. 10事务消息:半消息、本地事务状态、回查与最终一致性
    11. 11事务消息的边界:不能保证下游消费者业务一定成功
    12. 12消息发送与消费幂等:MQ 的重试机制不能替代业务幂等
    13. 13Spring Boot 集成、配置管理、连接与异常处理
    14. 14本地 Demo:发送、消费、异常重试、重复消息与消息积压
    15. 15监控与排障:生产失败、消费延迟、重试与死信
    16. 16版本边界:区分 RocketMQ 4.x 与 5.x 文档/API,不混用示例和配置
    17. 17生产环境的 Topic/消费组规划、权限、容量与消息保留

    Kafka:事件流与高吞吐消息系统

    12
    1. 01Kafka 的定位:事件流、日志型消息与高吞吐数据管道
    2. 02Topic、Partition、Replica、Broker 与分区内有序
    3. 03Producer、序列化、分区键与批量发送
    4. 04Consumer Group、分区分配、Offset 与消费进度
    5. 05Rebalance:触发原因、消费暂停与稳定性影响
    6. 06消息保留、日志压缩、重放与事件数据建模
    7. 07副本同步、ISR、生产者确认与可靠性配置的基本含义
    8. 08消费重复、Offset 提交时机与业务幂等
    9. 09Kafka 事务与 Kafka 内部读写语义的边界
    10. 10消费延迟、分区倾斜、积压与吞吐量排查
    11. 11Kafka 与 RocketMQ 的定位差异:按业务模型、生态与运维能力选型
    12. 12学习边界:理解核心架构并完成基础 Demo;除非岗位/项目需要,不要求与 RocketMQ 同等深度

    RabbitMQ 与消息产品选型

    8
    1. 01RabbitMQ 的定位、AMQP 与路由模型
    2. 02Exchange、Queue、Binding、Routing Key 与常见交换机类型
    3. 03Direct、Topic、Fanout 路由与发布订阅
    4. 04Publisher Confirms、Consumer ACK、持久化与重新投递
    5. 05Prefetch、消费者并发、死信与重试策略
    6. 06RabbitMQ 与 RocketMQ/Kafka 在路由、吞吐、保留和运维上的差异
    7. 07RabbitMQ 何时值得深入:目标岗位、现有系统或项目确实使用时
    8. 08产品选型不以“哪个绝对最好”为答案,而以消息语义、吞吐、延迟、运维能力与团队经验作判断

    数据库与消息的可靠衔接

    12
    1. 01数据库事务与发送消息之间的“双写”问题
    2. 02先写数据库再发消息、先发消息再写数据库各自的失败窗口
    3. 03发送超时但 Broker 可能已接收:为什么简单重试可能产生重复消息
    4. 04事务消息:它解决什么问题,不能自动解决什么问题
    5. 05Outbox/本地消息表:业务数据与待发送事件在同一数据库事务中落库
    6. 06后台投递、投递确认、重复发送与消费者幂等
    7. 07消息重试、死信、补偿、对账与人工介入
    8. 08事件 Schema 设计:事件 ID、聚合 ID、版本、时间和业务含义
    9. 09消费者状态检查:只允许合法状态转换,避免重复消息造成重复扣款/发货等副作用
    10. 10最终一致性的基本思路:可重试、可幂等、可观测、可补偿
    11. 11业务消息的保留、回放、脱敏与数据治理
    12. 12详细的 Saga、TCC、跨服务事务和微服务一致性策略放入下一份分布式系统教程

    综合实践:为 Java 业务引入缓存与异步消息

    12
    1. 01先建立一个普通 Spring Boot + MySQL 业务模块,明确业务事实数据与状态
    2. 02为读取频繁且允许短暂旧值的数据引入 Redis 缓存
    3. 03定义缓存 Key、TTL、更新/删除策略与缓存未命中行为
    4. 04模拟缓存穿透、击穿、雪崩和缓存失效失败
    5. 05增加一个异步业务动作,例如订单通知或后台处理任务
    6. 06选择 RocketMQ 完成生产者、Broker 与消费者的基本链路
    7. 07设计业务事件 ID、消费幂等、重试与死信处理
    8. 08模拟生产者超时、消费者宕机、重复消息、消费失败与消息积压
    9. 09对比直接同步调用与异步消息的响应时间、失败传播与排障成本
    10. 10记录 Redis 与 MQ 的关键指标、日志和业务状态
    11. 11输出一份技术决策记录:为什么引入、备选方案、预期收益、代价和回滚方法
    12. 12只在 Demo 证明收益后再考虑把中间件引入真实项目,避免为使用技术而增加复杂度
    教程 / Redis 与消息队列 / 消息可靠性、消费语义与故障治理 / 消息保留、重放、重复消费与数据清理策略

    DOCUMENTATION · Redis 与消息队列

    消息保留、重放、重复消费与数据清理策略

    字数 0 · 预计阅读 1 分钟

    待编写

    上一篇← 消费者扩容、并发度、背压与批量消费下一篇监控指标:生产失败率、消费延迟、积压量、重试量、死信量与处理耗时 →

    学习信息

    字数
    0
    预计阅读
    1 分钟
    阅读进度
    63%
    所属教程
    Redis 与消息队列

    星雨笔录

    Knowledge · Code · Growth

    在知识、代码与成长之间,留下可以回看的坐标。

    EXPLORE

    教程博客作品英语关于

    CONNECT

    GitHub ↗邮箱 ↗

    © 2026 星雨笔录 · yulanlin.cn

    用户协议隐私政策
    晋ICP备2026008281号-1晋公网安备14050002001992号
    更多
    作品用真实项目验证学习→关于了解作者与知识系统→全站搜索→