Redis主从复制搭建过程

Redis主从复制搭建过程

准备

两台linux服务器(虚拟机),配置了IP,保持网络畅通

IP角色端口
192.168.1.121Redis主节点6379
192.168.1.122Redis从节点6380
下载Redis安装包
# wget http://download.redis.io/releases/redis-3.2.8.tar.gz
安装

解压下载好的Redis安装包到一个指定的目录中

# mkdir -p /opt/module/redis
# tar -zxvf redis-3.2.8.tar.gz -C /opt/module/redis

进入到Redis的解压目录中,编译安装

# cd /opt/module/redis
# make & make install

安装过程中如果没有出现异常,错误,那么安装完成之后就可以在/usr/local/bin/目录下看到Redis的几个脚本的文件

  • redis-server //Redis服务器脚本
  • redis-cli //redis的客户端脚本
  • redis-benchmark //redis的性能检测工具
  • redis-check-aof //AOF文件修复工具
  • redis-check-dump //RDB文件检测工具

***注意: 以上步骤主从两台服务器(虚拟机)都要执行!

Redis主节点配置

将Redis解压目录中的utils目录下的redis_init_script脚本文件拷贝到/etc/init.d/目录中

# cp /opt/module/redis/utils/redis_init_script /etc/init.d/

修改redis_init_script脚本文件名称

# cd /etc/init.d/
# mv redis_init_script redis_6379

创建两个目录,用于存放Redis相关的文件

# mkdir /etc/redis             //存放redis的配置文件
# mkdir -p /var/redis/6379     //存放redis的持久化文件

将Redis配置文件redis.conf(默认在Redis的解压目录下)拷贝到/etc/redis/目录下,并且修改文件名称

# cp /opt/module/redis/redis.conf /etc/redis/

# cd /etc/redis
# mv redis.conf  6379.conf

修改Redis配置文件6379.conf,修改的内容如下:

bind  0.0.0.0                               //修改redis绑定的IP,在服务器(虚拟机)上也可以访问redis服务
port  6379                                  //设置redis的监听端口号,这个端口要和redis_6379脚本文件中端口保持一致!
daemonize  yes                              //让redis以守护进程方式启动
pidfile  /var/run/redis_6379.pid            //设置redis的pid文件位置
logfile   "6379.log"                        //日志文件名称
dbfilename dump_6379.rdb                    //设置dump持久化文件名称
dir   /var/redis/6379                       //设置持久化文件的位置
appendonly   yes                            //开启aof持久化
appendfilename  "appendonly_6379.aof"       //aof持久化文件

requirepass redis-pass                      //开启安全认证,后面的字符串是认证的口令/密码

修改Redis脚本文件redis_6379,设置Redis服务随机服务器的启动而自动启动

①.在脚本文件redis_6379中添加两行注释内容

#  chkconfig: 2345 90 10
#  description: redis is a persistent key-value database

②.设置开机启动

# chkconfig redis_6379 on

防火墙打开6379端口(在~目录下执行)

# /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
# /etc/rc.d/init.d/iptables save

到这里Redis主节点配置完毕!

Redis从节点配置

将Redis解压目录中的utils目录下的redis_init_script脚本文件拷贝到/etc/init.d/目录中

# cp /opt/module/redis/utils/redis_init_script /etc/init.d/

修改redis_init_script脚本文件名称

# cd /etc/init.d/
# mv redis_init_script redis_6380

编辑脚本文件内容,修改Redis默认的端口

# vim redis_6380

在这里插入图片描述
创建两个目录,用于存放Redis相关的文件

# mkdir /etc/redis             //存放redis的配置文件
# mkdir -p /var/redis/6380     //存放redis的持久化文件

将Redis配置文件redis.conf(默认在Redis的解压目录下)拷贝到/etc/redis/目录下,并且修改文件名称

# cp /opt/module/redis/redis.conf /etc/redis/

# cd /etc/redis
# mv redis.conf  6380.conf

修改Redis配置文件6380.conf,修改的内容如下:

bind  0.0.0.0                               //修改redis绑定的IP,在服务器(虚拟机)上也可以访问redis服务
port  6380                                  //设置redis的监听端口号,这个端口要和redis_6380脚本文件中的端口保持一致!
daemonize  yes                              //让redis以守护进程方式启动
pidfile  /var/run/redis_6380.pid            //设置redis的pid文件位置
logfile   "6380.log"                        //日志文件名称
dbfilename dump_6380.rdb                    //设置dump持久化文件名称
dir   /var/redis/6380                       //设置持久化文件的位置
appendonly   yes                            //开启aof持久化
appendfilename  "appendonly_6380.aof"       //aof持久化文件

slaveof  192.168.1.121  6379                //开启主从复制,后面的IP为主节点的IP地址,端口则是主节点的端口
slave-read-only yes                         //强制读写分离,主节点可以读写,从节点只能读,该属性默认已经打开了

masterauth redis-pass                       //安全认证,后面的字符串是认证口令

修改Redis脚本文件redis_6380,设置Redis服务随机服务器的启动而自动启动

①.在脚本文件redis_6380中添加两行注释内容

#  chkconfig: 2345 90 10
#  description: redis is a persistent key-value database

②.设置开机启动

# chkconfig redis_6380 on

防火墙打开6380端口(在~目录下执行)

# /sbin/iptables -I INPUT -p tcp --dport 6380 -j ACCEPT
# /etc/rc.d/init.d/iptables save

到这里Redis从节点也配置完毕!

启动Redis服务

①.启动Redis主节点服务,执行/etc/init.d/redis_6379脚本

# cd /etc/init.d/
# ./redis_6379 start

②.启动Redis从节点服务,执行/etc/init.d/redis_6380脚本

# cd /etc/init.d/
# ./redis_6380 start
停止Redis服务
# cd /etc/init.d/
# ./redis_6380 stop

***注意: 由于Redis主节点开启了安全认证,按照上面的方式是无法停止Redis主节点的服务的
在这里插入图片描述
解决方案:先访问Redis主节点服务,然后再使用"shutdown"关闭Redis服务
在这里插入图片描述

测试

①.在Redis主节点使用redis-cli客户端脚本访问Redis服务

# redis-cli -h 192.168.1.121 -p 6379 -a redis-pass

在这里插入图片描述
②.在Redis从节点使用redis-cli客户端脚本访问Redis服务

# redis-cli -h 192.168.1.122 -p 6380

在这里插入图片描述
可以看到,数据已经同步过来了!!!

③.在Redis从节点上执行数据写入操作,测试读写分离
在这里插入图片描述
根据提示可以看到,从节点是不能进行数据写入操作的!!!

查看Redis主从节点信息

通过info replication命令查看当前Redis主/从节点信息
在这里插入图片描述

总结
  1. 如果配置主从复制之前就启动过Redis服务,那么就需要将/var/run/目录中redis_xxx.pid文件删除掉!!
  2. 如果Redis主节点开启了认证口令,那么使用”./redis_6379 stop”命令是无法停止redis服务的,需要先使用redis-cli -h <主节点ip地址> -p <主节点端口> -a <认证口令>连接redis服务,然后在使用”shutdown”命令才可以停止redis服务!!!

Redis主从复制原理
https://blog.csdn.net/xp_xpxp/article/details/90694894

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值