如题,N 个 Redis 实例做读服务,倘若有一个实例上的 Redis 的某个内存数据被改了,其他实例上的 Redis 要怎么感知到这个改动,避免不同实例对这数据的响应结果不一致呢?或者其实 Redis 并不重视这个,有其他层面的方案来避免?
看你的描述应该是主从架构,你问题的出发点就不对,这 N 个实例都是从节点,它们数据的更新是由主节点来做的,而不是这 N 个实例之间互相感知。 你说的这个问题确实存在,因为主从同步是有延迟的,Redis 也不是强一致的系统。
@Kumo31 补充一下,Jepsen 对 Redis 的分析报告( https://aphyr.com/posts/307-call-me-maybe-redis-redux )中指出了 Redis 能提供最强的保证也不超过因果一致性,并且嘲讽了一波作者认为设计分布式系统很简单这件事,评论里作者本人也下场 battle 了