说明
- 由于机器有限,本次操作将在 1台服务器上完成 1主 2从的操作
- 服务器的内网 IP 地址为 192.168.0.241
- master (主 redis) 使用 6379 端口, slave1(从 redis) 使用 6380 端口, slave2(从redis) 使用 6381 端口
- 为了方便查看日志输出,本次操作不将 redis设置为后台运行
- 主从复制架构仅仅用来解决数据的冗余备份,从节点仅仅用来同步数据
- 无法解决: 1.master节点出现故障的自动故障转移
架构图
编辑配置文件
创建 3 个目录
mkdir /root/master
mkdir /root/slave1
mkdir /root/slave2
从解压的 redis 源码中拷贝 redis.conf 文件分别到 刚创建的 3 个目录中
cp /data/redis-4.0.11/redis.conf /root/master/
cp /data/redis-4.0.11/redis.conf /root/slave1/
cp /data/redis-4.0.11/redis.conf /root/slave2/
分别编辑这三个配置文件
```shellvim /root/master/redis.conf
vim /root/slave1/redis.conf
vim /root/slave2/redis.conf
master port 6379 bind 0.0.0.0
slave1 port 6380 bind 0.0.0.0 slaveof masterip masterport
slave2 port 6381 bind 0.0.0.0 slaveof masterip masterport
<a name="N1C41"></a>
## 启动 redis 服务
<a name="MbwCv"></a>
### 启动 master redis 服务
```shell
/usr/local/redis/bin/redis-server /root/master/redis.conf
启动 slave1 redis 服务
/usr/local/redis/bin/redis-server /root/slave1/redis.conf
启动 slave2 redis 服务
/usr/local/redis/bin/redis-server /root/slave2/redis.conf
使用 redis client 登录
登录 master
cd /usr/local/redis/bin/ ./redis-cli -p 6379
进行读写操作(读写ok):
127.0.0.1:6379> set name zs OK 127.0.0.1:6379> set sex man OK 127.0.0.1:6379> get sex "man" 127.0.0.1:6379> get name "zs"
登录 slave1 (或 slave2)
cd /usr/local/redis/bin/ ./redis-cli -p 6380
进行读写操作(可以读, 但不能写):
127.0.0.1:6380> get name "zs" 127.0.0.1:6380> set age 11 (error) READONLY You can't write against a read only slave. 127.0.0.1:6380>