跳转到内容

第六部分导读 · 缓存与队列

查询越来越慢、发邮件拖住了请求、一件事要通知好几个服务,这些问题常常不用再加数据库解决。这一部分讲 Redis 做缓存、锁和排行榜,讲消息队列(message queue)怎么把慢活和通知从请求里拿出去,再分别讲 RabbitMQ 与 Kafka:前者处理完就删,后者按时间保留、可以重读。

我要做什么 用哪个 详见
给慢查询加缓存,设过期时间 Redis(Cache-Aside) 第 25 章 25.4
做排行榜、计数器或分布式锁 Redis 第 25 章 25.4
验证码、会话到点自动失效 Redis 的 SET k v EX 秒数 第 25 章 25.3
不确定该用哪种队列 按需求对照表选 第 26 章 26.4
发邮件、生成报表这类每个任务做一次 RabbitMQ 第 27 章 27.4
订单、点击事件给多个服务各读一份,要能重读 Kafka 第 28 章 28.4
已经有 Redis,量不大,要确认和重投 Redis Streams,并设 maxmemory-policy noeviction 第 26 章 26.4
消息可能重复投递,消费者要不出错 让消费者幂等 第 26 章 26.4
  • 第 25 章 Redis:五种数据结构、过期、持久化与淘汰,以及缓存、分布式锁和排行榜的写法。
  • 第 26 章 消息队列总览:队列的基本概念,Redis Streams、RabbitMQ、Kafka 的对照与选型。
  • 第 27 章 RabbitMQ:交换机、队列与绑定,管理界面操作,死信队列和积压排查。
  • 第 28 章 Kafka:主题与分区、消费者组和偏移量,按键分区让消息有序。