Redis主从复制的配置

Posted ChenPengYu陈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis主从复制的配置相关的知识,希望对你有一定的参考价值。

复制\\修改主从节点的配置:

刚安装好之后bin目录下没有redis.conf文件,从安装文件的src目录中复制到安装目录

sudo cp redis-4.0.9/redis.conf redis/bin/

这里就使用redis.conf作为主节点的配置,复制一份作为从节点的配置文件:

cp redis.conf redis_6380.conf

主节点配置

vim redis.conf

port 6379
daemonize  yes
requirepass 123456
pidfile /var/run/redis_6379.pid
logfile "/usr/local/data/redislog.log"

从节点配置

和主节点一样,再加入masterauth(如果主节点配置了requirepass,那么从节点就必须配置) 、 slaveof  。

vim redis_6380.conf

port 6380
daemonize  yes
requirepass 123456

# masterauth <master-password>
masterauth 123456

# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
pidfile /var/run/redis_6379.pid
logfile "/usr/local/data/redislog.log"

或者 启动redis-server之后,直接输入--slaveof<masterHost><masterPort> 命令完成配置 : slaveof 127.0.0.1 6379

使用配置文件分别启动主从节点

./redis-server redis.conf 

./redis-server redis_6380.conf 

启动cli 

因为配置了requirepass 。 所以要输入密码 -a password

./redis-cli -p 6379 -a 123456

./redis-cli -p 6380 -a 123456

查看配置是否正确

127.0.0.1:6379> info Replication 

看这几个地方是否正确:connected_salve的数字就是已经连接的从节点的数量,如果从节点都已经启动,还是显示0 , 需要关闭防火墙  systemctl stop firewalld  

 

 

 

 

 再查看从节点:

127.0.0.1:6380> info replication

 

 查看是否正常复制

 

 

 

 发现主从库已经连接,但是从库无法读取到主库设置的值。 到配置文件中日志的路径中查看日志:

 

 Opening the temp file needed for MASTER <-> SLAVE synchronization: Permission denied

从库没有权限打开临时文件,使用root权限启动redis从库、或者改redis安装目录为启动用户可写

 

 sudo -u root ./redis-server redis_6380.conf 

 

修改后,成功复制:

 

以上是关于Redis主从复制的配置的主要内容,如果未能解决你的问题,请参考以下文章

今天来聊聊 Redis 的主从复制

配置redis主从复制

Redis——Redis主从复制

redis实战_04_yucong_主从复制

实现Redis的主从复制配置

redis高可用之主从复制,哨兵,集群