可以采用twemproxy的架构进行演进。
A地域部署proxy和redis实例(主),B地域部署proxy和redis实例(从),通过sentinel控制主从切换。
正常情况下A、B地域的proxy同时提供服务,将请求路由到A地域的redis节点;一旦A地域故障,可以通过redis实例的主从切换,实现B地域的接管。
当然proxy前面还有一层负载均衡,能够将用户请求平均负载到多个proxy上,并且能够判断proxy的存活。
由于redis是异步复制,数据的完全一致性肯定无法保障,但是redis作为缓存层,对数据库一致性要求没那么高。