Redis主从配置

 

 

1  Redis主从服务配置

1.1概述

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。主从同步,有以下好处:

实现数据的备份,减少单点故障带来的损失;有利于实现负载均衡。本来一台服务器负责所有数据的读写,而通过主从同步,可以让多个从服务器负责数据的读,而主服务器主要负责数据的写,减轻了单点压力。

 

1.2实现机制

(1)Slave服务器连接到Master服务器.

(2)Slave服务器发送SYCN命令.

(3)Master服务器备份数据库到.rdb文件.

(4)Master服务器把.rdb文件传输给Slave服务器.

(5)Slave服务器把.rdb文件数据导入到数据库中.

 

上面的这5步是同步的第一阶段, 接下来在Master服务器上调用每一个命令都使用replicationFeedSlaves()来同步到Slave服务器.replicationFeedSlaves()主要做的工作就是把用户执行的命令发送到所有的Slave服务器, Slave服务器执行. 这样就可以实施同步功能.

 

 

1.3相关配置

案例:

主服务:172.168.10.254   6379

从服务:172.168.10.254   6380

 

修改redis.conf配置文件,主要配置如下:

1)  配置相应的ip和端口

主:

bind172.168.10.254                           #绑定主机IP, (必须修改为网卡ip地址)

port   6379                                   #监听端口,默认为6379

从:

bind172.168.10.254                           #绑定主机IP, (必须修改为网卡ip地址)

port   6380                                   #监听端口,默认为6379

 

2)  修改从服务redis.conf 配置:

slaveof172.168.10.254  6379                  #设置主服务的IP及端口

slave-read-only      yes                      #配置从机是否只读

masterauthpwd123                             #设置主服务的连接密码

slave-serve-stale-datayes                    #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务。

#repl-ping-slave-period10                   #master端ping slave端的时间间隔,时刻检测slave连接的有效
#repl-timeout60                   # replication连接的超时时间

#slave-priority100                  #slave的权重,用于redis sentinel模式中,如果masterdown,权重大的slave接替master       

slave-priority100                            #slave级别,数字越小级别越大(在master挂掉,slave升级用到)

 

1.4测试验证

主从服务配置完成后,启动相应服务;

1)  从服务日志信息将显示从masger主服务同步数据:

 

2)  主服务日志信息将显示slave从同步数据成功:

 

3) 分别用redis-cli连接:

[root@centosredis]# redis-cli -h 172.168.10.254 -p 6379

172.168.10.254:6379>

[root@centosredis]# redis-cli -h 172.168.10.254 -p 6380

172.168.10.254:6380>

 

4)  测试:

在主服务设置相应的key数据:

 

 

在从服务上可以查看到相应的同步数据:

 

 

此时查看主从服务的相应日志文件可以看到:

主服务:

 

从服务:

 

可以看到的是当主服务数据发生变化时,将实时同步到从服务上。

至此Redis主从服务数据同步配置完成!

 

PS:

除了以上通过硬配置的方式实现主从外,还可以手动通过命令的方式去直接指定Master,即在slave机器上:

redis 127.0.0.1:6379> SLAVEOF 172.0.x.y 6379
OK

手动命令实现的缺点就是,当slave机器重启的时候,将会失效,不会保存设置!

 

还有一点需要注意的是,主从Master-Slave服务配置好了之后,如果将Master停止掉,此时Slave机器将一直保持Slave的角色,一直到等待Master恢复为止!如果需要将Slave升级为Master可以有两种方法,具体如下:

第一种是:

设置slave配置,即:SLAVEOF NO ONE ,说明:对一个从属服务器执行命令 SLAVEOF NO ONE 将使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器,原来同步所得的数据集不会被丢弃。

利用『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。

第二种是:

使用哨兵模式,即:Redis Sentinel配置,由Sentinel来自动选举出Master,具体的配置可以关注后面的文章。

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值