redis 主从复制结构模式

在生产环境中一上来数据量可能不会太大,上来就建个集群,有点消耗资源。

主从复制结构模式:
在这里插入图片描述

主从复制工作原理:
  • slave向master发送sync命令
  • master启动后台存盘进程,并收集所有修改数据命令
  • master完成后台存盘后,传送整个数据文件到slave
  • slave接受数据文件,加载到内存中完成首次完全同步
  • 后续有新数据产生时,master继续收集数据修改命令依次传给slave,完成同步

前期准备工作:
下载安装reids:
官方地址:https://redis.io/download

关闭防火墙:

systemctl status firewalld        //查看当前防火墙状态
systemctl stop firewalld           //关闭当前防火墙
systemctl disable firewalld         //开机防火墙不启动
iptables -F                        //关闭防火墙

一主一从

192.168.10.60
192.168.10.61
reids安装请参考我的另篇文章《Redis 单机多节点部署》。
默认情况下每台redis服务器都是主数据库,你想让一台服务器做主服务器,就不用配置它了(它本身就是默认是主的)。

两台都修改配置文件:

vim redis.conf
bind 192.168.10.10       //修改成本机地址
daemonize yes            //放到后台运行

启动redis服务:

./redis-server redis.conf 
命令行配置(立即生效,重启后失效)

查看当前redis信息:

[root@redis_01 bin]# ./redis-cli -h 192.168.10.10
192.168.10.10:6379> info replication    //查看主从复制信息
# Replication
role:master                              //当前为master节点 
connected_slaves:0                       //从库为0
master_replid:5ab3fb1b56c43b55297996e49f685e48c3ea5c78
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

指定192.168.10.11为从服务器配置:

root@redis_02 bin]# ./redis-cli -h 192.168.10.11
192.168.10.11:6379> slaveof  192.168.10.10 6379         // slaveof   主库地址IP地址  主库端口号
OK
192.168.10.11:6379> info replication     //查看复制信息
# Replication
role:slave                                //角色
master_host:192.168.10.10                 //主库IP地址
master_port:6379                          //主机端口号 
master_link_status:up                     //与主库连接状态

从服务器在命令行恢复主库(反客为主)

[root@redis_02 bin]# ./redis-cli -h 192.168.10.11
192.168.10.11:6379> slaveof no one      //重新变回主服务器
OK

注意!!

从库是不能写入和删除文件。

如果写入的话报错如下

[root@redis_02 bin]# ./redis-cli -h 192.168.10.11
192.168.10.11:6379> set xx 22         //添加数据
(error) READONLY You can't write against a read only replica.
//报错如上:(错误)只读不能对只读副本进行写入。
永久生效配置

在从服务器上写入配置文件:

vim redis.conf 
slaveof  192.168.10.10 6379    //添加一行配置
配置带验证的主从复制

配置master,设置连接密码,重启服务。

vim +771 redis.conf
requirepass 123456      //设置密码

配置slave,设置连接master的密码,重启服务。

vim +376 redis.conf
masterauth 123456       //指定主库的密码

######################################################################

主从从,一主多从和上边原理配置一样,这里就不做演示了。

#######################################################################

猜你喜欢

转载自blog.csdn.net/Xiao_Xiao_Niao_/article/details/106660845