Redis - Linux下环境搭建
一、单机版
单机单个实例
二、伪集群
单机多实例,多端口号模拟
三、集群
环境要求:
三种模式:
主从:1主2从
哨兵:1主2从3哨兵
集群:3主3从
1、Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
2、要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。
四、三种集群模式的对比
1、主从模式
优点:
- 解决数据备份问题
- 做到读写分离,提高服务器性能
缺点:
- 每个客户端连接redis实例的时候都是指定了ip和端口号的,如果所连接的redis实例因为故障下线了,而主从模式也没有提供一定的手段通知客户端另外可连接的客户端地址,因而需要手动更改客户端配置重新连接。
- 主从模式下,如果主节点由于故障下线了,那么从节点因为没有主节点而同步中断,因而需要人工进行故障转移工作。
- 无法实现动态扩容。
2、哨兵模式
优点
- Master 状态监测
- 如果Master 异常,则会进行Master-slave 转换,将其中一个Slave作为Master,将之前的Master作为Slave
- Master-Slave切换后,master_redis.conf、slave_redis.conf和sentinel.conf的内容都会发生改变,即master_redis.conf中会多一行slaveof的配置,sentinel.conf的监控目标会随之调换
缺点:
- 如果是从节点下线了,sentinel是不会对其进行故障转移的,连接从节点的客户端也无法获取到新的可用从节点
- 无法实现动态扩容
3、集群模式
优点:
- 有效的解决了redis在分布式方面的需求
- 遇到单机内存,并发和流量瓶颈等问题时,可采用Cluster方案达到负载均衡的目的
- 可实现动态扩容
- P2P模式,无中心化
- 通过Gossip协议同步节点信息
- 自动故障转移、Slot迁移中数据可用
缺点:
- 为了性能提升,客户端需要缓存路由表信息
- 节点发现、reshard操作不够自动化
参考资料: