redis主从复制搭建
# Redis安装
3台服务器安装Redis6.2.6 官网 (opens new window) 中文 (opens new window) Redis安装包解压完成后,详细安装目录可以查看README.md
bash
# 1. 安装gcc
yum install gcc
# 2. 下载安装包
wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar -xf redis-6.2.6.tar.gz
# 3. 编译
cd redis-6.2.6 && make
cd src && make install PREFIX=/usr/local/redis
# 4. 配置环境变量
vi /etc/profile
# 添加环境变量
export REDIS_HOME=/usr/local/redis
export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile
# 5. 根据Redis官方提供的脚本一键安装
cd ../../redis-6.2.6/utils
./install_server.sh
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
运行第5步报错,错误信息如下: (opens new window)
注释掉install_server.sh
中报错部分后重新执行install_server.sh
(opens new window)
bash
# 可执行多次。物理机中可以有多个Redis实例,通过port区分
./install_server.sh
# 根据提示内容按需修改,不修改直接回车确认
2
3
执行完成后redis实例默认已启动,配置及日志文件路径上图也有输出。 (opens new window)
# 配置主从复制
从节点开启主从配置,有 3 种方式:
- 配置文件:在配置文件加入 slaveof < masterip > < masterport >
- 启动命令:redis-server 启动命令后加入 --slaveof < masterip > < masterport >
- 客户端命令:Redis 服务器启动后,直接通过客户端执行命令:slaveof < masterip > < masterport >(亲测有效!)
本文通过常用的配置文件加入。 Master节点修改配置: 修改/etc/redis/6379.conf 中的bind,默认只能本机访问,需添加2台salve 节点ip。 Slave节点修改: 修改q111和q112两台都需要修改
- 修改/etc/redis/6379.conf 中的bind,默认只能本机访问,需添加2台salve 节点ip。
bind 192.168.88.100
- 配置主节点IP和端口
bash
vi /etc/redis/6379.conf
# 修改,如果主节点存在用户名和密码也需要配置上
replicaof 192.168.88.110 6379
2
3
重启3台从redis服务
systemctl restart redis_6379
验证 通过查看Master Redis日志可以看到已经将RDB同步到磁盘并发送给Salve节点。 (opens new window)
查看Slave Redis日志可以看到已经从Master节点将RDB同步到磁盘 (opens new window)
注意: Slave在同步Master节点RDB数据时会先删除自己的RDB文件。 通过客户端连接后在Master节点set 一个key 后 在Slave节点get 该key可以看到数据已经同步。 q112 (opens new window) q111 (opens new window)
至此,主从复制已配置完毕。
搭建遇到的问题
搭建完后 ,如果主节点查看不到从节点 可以使用命令 telnet masterip 6379
如果出现
那么需要将主节点的配置文件 protected-mode
置为no