1 主从概念

master和slave都是一个Redis实例
一个master可以拥有多个slave, 一个slave又可以拥有多个slave,
如此下去, 形成了强大的多级服务器集群架构
master用来写数据, slave用来读数据
通过主从配置可以实现读写分离 与 数据备份
image.png
image.png

2 ubuntu下的主从配置

(1) 配置主

  • 修改/etc/redis/redis.conf文件

image.png

  • 重启redis服务

    sudo service redis stop sudo redis-server redis.conf

(2) 配置从

  • 复制/etc/redis/redis.conf文件

    sudo cp redis.conf ./slave.conf

image.png

  • 修改redis/slave.conf文件

    sudo vi slave.conf

  • 编辑内容

    port 6380 slaveof 192.168.3.67 6379

image.png
image.png

  • redis服务

先把之前的redis进程杀掉, 然后重新启动

sudo redis-server redis.conf sudo redis-server slave.conf

image.png
查看主从关系

redis-cli -h 192.168.3.67 info Replication

image.png

3 windows下的主从配置

2 为redis.windows.conf添加bind
bind 127.0.0.1 192.168.3.177

注: 明确bind的含义
bind是限制只有此IP可以连接到该redis,其他IP会connect refused
机器上有两个网卡,分别为192.168.205.5 和192.168.205.6,
如果bind 192.168.205.5,那么只有该网卡地址接受外部请求,
如果不绑定,则两个网卡口都接受请求

redis.windows.conf中,

bind 127.0.0.1
意味着redis服务器只接受本机连接

bind 192.168.3.177
意味着redis服务器使用该ip来接受内网其它主机的连接

bind 39.128.151.163
意味着redis服务器使用该ip来接受外网其它主机的连接

3 把此文件夹拷贝二份, 总共三份,分别命名
master_6379, slave_6380, slave_6381
image.png
1) master_6379 不做更改

2)slave_6380文件夹中redis.windows.conf文件配置
port 6380
slaveof 192.168.3.177 6379

3)slave_6381文件夹中redis.windows.conf文件配置
port 6381
slaveof 192.168.3.177 6379
image.pngimage.png

3 若要启动主从, 需要分别开启三个redis-server, 再开启三个redis-cli
image.png

4 编写6个bat来快捷启动redis服务器和客户端
cd master_6379
redis-cli -p 6379

cd master_6379
redis-server.exe redis.windows.conf
image.pngimage.png
image.png

4 测试

  • 进入连接主Redis服务端的客户端

image.png

  • 进入连接从Redis服务端的客户端

重新开一个终端
image.png

  • 在接连主的客户端中添加

image.png

  • 在连接从的客户端中可以读取

image.png
但连接从的客户端中不能写
image.png