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主从复制的配置的主要内容,如果未能解决你的问题,请参考以下文章