搜索一番只找到了一个方法:把 redis 取数据的操作放在 try catch 中
感觉这个方法似乎有效但是不太稳妥?毕竟 try catch 也是要耗性能的,有没有更好的实现方式呢

搜索一番只找到了一个方法:把 redis 取数据的操作放在 try catch 中
感觉这个方法似乎有效但是不太稳妥?毕竟 try catch 也是要耗性能的,有没有更好的实现方式呢
1 gscoder Mar 30, 2020 熔断降级了解一下 Hystrix 。 原理很简单,自己也可以实现:用一个标志位标记 redis 的健康状态,在一次失败 /n 次失败后,操作跳过 redis |
2 gaobing Mar 30, 2020 肯定不能一直 try catch,使用标志位,catch 里面 flag 设为 false,再开一个定时任务线程 测试 redis 状态,好了的话改为 true 。 if(flag){ try{ //redis 操作 } catch { flag = false ; //再开一个定时任务线程 测试 redis 状态 } } else{ // 数据库操作 } |
3 xuanbg Mar 30, 2020 如果 redis 挂掉,你这数据库能扛得住么……扛不住不就全都挂掉了吗。所以啊,怕 redis 挂掉,就得搞集群,让它不会挂掉啊。 |
4 yongliu Mar 30, 2020 自己创建一个 CacheErrorHandler bean,具体可以参考下这里: https://hellokoding.com/spring-caching-custom-error-handler/ |
5 des Mar 30, 2020 redis 挂掉你就不怕数据库炸掉 ? |
6 lovedebug Mar 30, 2020 |
8 hantsy Mar 30, 2020 Spring Retry |
9 huntcool001 Mar 30, 2020 @EscYezi 可以跨可用区部署 redis 集群. |
11 Ahaochan Mar 31, 2020 开集群,开熔断,还要更高可用性就两地三中心,再高就上月球基地部署服务器 |
12 Aresxue Mar 31, 2020 集群熔断降级重启定时扫描 |