Redis服务挂掉后,如何保证后台服务不受影响,直接到数据库里获取数据?

发布于 2022-09-11 23:39:29 字数 272 浏览 20 评论 0

项目使用spring框架,使用RedisTemplate去访问Redis数据。程序的逻辑是这样的:先访问Redis,有则直接返回数据;无则到数据库去取,取过来后顺便放一份在Redis中,供后续使用。

现实情况:Redis服务如果挂掉,那么RedisTemplate操作Redis时直接抛异常,造成后台服务不可用。
期望情况:Redis服务如果挂掉,不抛异常,直接到数据库获取,这样后台服务还是正常的。

因为RedisTemplate操作Redis散落在各个业务方法里面,有没有统一的处理方法?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

榆西 2022-09-18 23:39:29

可以对访问Redis做一层gateWay的包装,redis抛异常后直接返回null,查询走数据库。同时报警。或者对Redis访问增加降级方案,异常过多时直接降级,走数据库查询。

海拔太高太耀眼 2022-09-18 23:39:29

目前我所在的公司方案:redis集群。redis作为二级缓存,ehcache作为一级缓存。数据读取先从一级缓存中读取,不存在时再从二级缓存读取,这样对二级缓存 Redis 的访问次数降到很低。再加上redis集群,挂的概率很低很低。

十二 2022-09-18 23:39:29

可以用熔断器降级比如可以用Hystrix,在redis取数据做一次熔断降级如果报错了直接走数据库。

追星践月 2022-09-18 23:39:29

redis高可用(集群+主从),别让挂。
redis挂了,你数据库也离不远了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文