Redis集群模式分析
今年行情不好,想换个合适的工作频频受挫。
年龄大,学历矬,面试机会也仅限一些外包公司,往年外包公司招人基本上能做事就行,今年不一样了,不但要求学历和年龄,
还以架构师的标准招开发人员,工资也是想办法往下压,像我们这些年龄大学历矬的十年以上开发人员都被压到和中级开发一个级别了。
由于一直以来都在一些大公司从事开发,工作也是在一些成熟的平台上做一些需求,缺乏构建大平台基础架构的经验,
虽然平时也了解一些平台架构知识,终归实践少,没有办法形成一套成熟的架构知识体系,后面会陆续写一些博客,成就自己,大家共同学习。
一.主从模式
优点:由于主机会及时同步更新数据到从机,可实现数据备份和负载均衡。万一主机出现故障,可用从机备份来恢复主机数据;
系统并发压力大时可实现缓存读写分离,从机可以分担缓存读操作压力。
缺点:不论是主机还是从机出现故障,都要人工介入才能重新提供服务,整个系统都要受到影响,没有办法保证高可用。
二.哨兵模式
优点:哨兵模式在兼容主从模式优点的同时,设置哨兵服务器,一旦某个主机故障,可自动实现将从机切换为主机,整个系统将不会受故障影响,实现高可用。
缺点:由于哨兵模式下,不管主机还是从机,每台服务器都是全量存储,一旦数据量过大一台服务器放不下,哨兵模式就不能满足需求了。
在数据量不是很大的情况下,哨兵模式不失为一个很好的解决方案。
三.集群模式
优点:集群模式可实现数据分片存储,数据量增加同时可以增加服务器解决,同时能够在主机故障时自动实现主从切换,同时支持高可用和大数据。
缺点:在集群模式下,客户端可以请求任何一台服务器A,如果所请求的KEY不在这台服务器A上,服务器发返回一个Move指令带回KEY所在的服务器B的IP,客户端再连接B服务器发送请求,才最终请求成功,
这就是KEY的二次定位问题,会对缓存性能有一定的影响,网络上有很多解决方案,比如Codis,Twemproxy,Redis6.0也带来了集群代理redis-cluster-proxy。