本地缓存和分布式缓存不一致
当 Redis 缓存、数据库更新时,直接删除分布式缓存的 key 即可。由于分布式服务中的客户端是非中心化的,存在于每个客户端上的本地缓存此时就会出现和分布式缓存不一致的情况。要解决这个问题,需要在分布式缓存更新的时候,通知到每个客户端,因此可以考虑如下几个解决方案:
- 利用 Redis 本身的 Pub/Sub 机制,及时通知本地缓存
- 利用更专业的消息队列,如 RocketMQ,保障消息的可靠性,但是会增加设备的复杂度
- 设置适当的过期时间兜底,本地缓存可以设置较短的过期时间