Redis(十):强依赖redis如何保持服务高可用

工作中有部分业务并发一直都很高,为了维持高QPS,所以强依赖了redis集群,但是这么做一直是有风险的,如果redis集群挂了或者短时间服务异常的话,是会影响到所有业务的,之前就出现过别的业务由于bigkey把redis cpu打满1分钟,导致我们服务也异常的情况。

为了避免再次出现这种情况,对我们强依赖redis的服务进行了优化,引入了内存作为备用缓存。
架构图如下:

image.png

关键点:
1、更新redis缓存时,也同步更新本地内存;
2、在redis失效后,查询本地缓存作为兜底数据;
3、管理后台修改数据的时候,广播消息,刷新本地缓存;
4、通过分布式定时任务来定时更新本地缓存数据和redis缓存,达到最终一致性;
4、在应用启动的时候,将特定的数据预热到本地缓存

优点:在redis短暂异常时,可以通过本地内存过度一段时间,而不至于由于redis异常导致连锁的服务不可用;

缺点:本地内存只能保存很有限的一部分核心或者兜底数据,所以在redis异常时,只是起到一个降级作用;

你可能感兴趣的:(Redis(十):强依赖redis如何保持服务高可用)