Redis 旁路方案
Redis旁路设计说明
Redis的旁路设计是指Redis在宕机之后或者网络不通的情况下,应用系统能够正常的访问,做出正确的缓存方案切换,一般指切换到应用缓存。不会造成系统不可访问的情况。但从redis集群的设计运维来说,redis肯定要保持高可用的,换句话说是在redis服务层面去做高可用,而不是应用层面去找替代方案。比如:redis挂了之后 80% ~ 90%是因为高并发或者是大对象缓存导致阻塞、连接满了,或者是主从复制内存耗尽。假如说这种情况出现,就算应用和数据库的配置不错也是顶不住的。所以说一般情况下使用Redis高可用集群是不需要做redis的旁路设计的,如果redis不能访问是要直接做熔断设计的。
为什么需要旁路
可是有些情况,比如说手动重启redis/磁盘满了(redis和其他服务在一起),(普通应用redis服务挂的概率低到可以忽略不计)这时候需要重启redis。但是服务不能停且服务没有多少人访问的情况下进行切换到JVM缓存。还有种情况下是redis挂了之后能快速恢复,系统需要稍微顶一下。
当然还有一种情况是系统硬性需要做旁路设计。
如果要做旁路session切换就必须保证集群负载已经做好了IP hash,就是说每次用户访问过来都会访问到同一台服务器。F5的session粘连以及Nginx的IP hash都可以做到。