一、首先思考一个问题,为什么redis性能这么高还需要分布式方案?
1、实现更高性能:高并发应用,单机性能会有影响,需要更多redis服务器分担压力,实现负载均衡
2、实现高可用:如果单机,防止宕机/硬件故障
3、实现可扩展:单机内存和硬件有限制,实现横向扩展
冗余或者分片存储实现如上特性。
二、主从复制-replication配置
和Kafka,Mysql,Rocketmq一样,redis支持集群部署,集群节点有master和slave之分,主节点是master,从节点是slave(最新叫副本replica).slave会通过复制机制,从master同步最新的数据。Redis提供了非常方便的命令开启主从复制。
如何配置开启主从复制?
以本机搭建伪集群为例,6379端口是从节点,6378作为主节点。
1、从节点redis.conf配置 replicaof masterip masterport 从节点启动后,自动连接到master节点,开始同步数据.
如果换了新的master节点,这个配置会被重写。
2、或者在redis-server程序启动时候指定
./redis-server --replicaof masterip masterport
复制代码
3、或者登录客户端,执行如下命令
slaveof masterip masterport
复制代码
注意这种方式是运行过程中修改,可以实现故障转移
注意: 一个从节点也可以是其他节点的主节点,形成级联复制的关系。但是其他节点也是从顶层主节点同步数据。
配置好集群后,通过info replication查看集群状态
通过role命令,可以查看节点在集群中的角色信息