Redis主从复制 搭建

目录

1、创建三个redis-server服务实例

2、修改相应的配置文件

3、删除掉原来的持久化数据(省略)

4、启动三个实例

5、启动三个客户端

6、使用命令的方式设置主从节点

7、如果从节点突然挂掉了,可以重新恢复

8、如果主节点突然挂掉了,可以将从节点提升为主节点

9、查看当前redis实例的状态


Redis 的主从复制用于将主服务器的数据复制到一个或多个从服务器。主从复制的主要原因有:

1. 数据冗余:实现数据的热备份,当主服务器 down 掉时,从服务器可以继续提供服务。

2. 负载均衡:通过主从复制,我们可以将读操作分摊到多个从服务器上,分担主服务器的读压力,提高系统的吞吐量。

3. 高可用性:当主服务器宕机时,从服务器可以接替主服务器继续处理读写请求,保证服务的高可用性。

4. 数据分片:我们可以将不同的主服务器设置不同的数据库编号,让各个从服务器同步不同主服务器的数据,实现数据分片的作用。

5. 进行数据分析或数据挖掘:从服务器的数据是主服务器数据的拷贝,我们可以在从服务器上进行各种数据分析,而不会影响主服务器的性能。

Redis 主从复制的工作过程:

1. 启动从服务器时,设置 replication-replica-server 参数指定主服务器地址。

2. 从服务器启动后会连上主服务器,发送 SYNC 命令获取主服务器全部的数据。

3. 主服务器接收到 SYNC 命令后,会开始反复发送RDB文件到从服务器,直到发送完毕。

4. RDB文件发送完毕后,主服务器开始反复将新的命令发送给从服务器,从服务器执行这些命令,保证数据与主服务器一致。

5. 如果网络中断,从服务器会记录断开时最近一次同步成功的位置,等网络恢复后继续同步。

使用命令实现主从复制:

1、创建三个redis-server服务实例

在redis中的utils中执行以下命令:

./install_server.sh    指定一个端口号为6379   主节点
./install_server.sh    指定一个端口号为6380   从节点
./install_server.sh    指定一个端口号为6381   从节点

Redis主从复制 搭建_第1张图片  

2、修改相应的配置文件

在etc/redis中修改配置文件:

Redis主从复制 搭建_第2张图片

创建一个文件夹port用来放置三个配置文件
6379.conf
6380.conf
6381.conf
1)将配置文件的端口号进行修改 port
2)将logfile注释掉
3)将appendonly 设置为  no
4)将daemonize 设置为 no  ---------  可以不修改,目的是三个实例作为前台进程运行
5)dbfilename 修改称自己的
目的是三个实例作为前台进程运行 

3、删除掉原来的持久化数据(省略)

rm -rf 

4、启动三个实例

[root@bogon utils]# systemctl start redis_6379.service
[root@bogon utils]# systemctl start redis_6380.service
[root@bogon utils]# systemctl start redis_6381.service

确认 Redis 服务器已成功启动:查看状态、

[root@bogon utils]# systemctl status redis_6380.service

Redis主从复制 搭建_第3张图片

 查看主从关系:

info replication

Redis主从复制 搭建_第4张图片

5、启动三个客户端

redis-cli # 进入主节点
redis-cli -p 6380 # 进入从节点
redis-cli -p 6381

6、使用命令的方式设置主从节点

在从节点的客户端中执行如下命令即可设置当前节点为从节点,连接主节点的地址和端口号:
REPLICAOF 127.0.0.1 6379     或者  slaveof  127.0.0.1  6379

7、如果从节点突然挂掉了,可以重新恢复

redis-server /etc/redis/6380.conf   REPLICAOF 127.0.0.1 6379

8、如果主节点突然挂掉了,可以将从节点提升为主节点

在从节点的客户端连接中执行如下命令:
REPLICAOF  no  one  或者slaveof no  one   此时从节点变为主节点,其他从节点需要重新连接到新的主节点

9、查看当前redis实例的状态

在客户端中执行如下命令:
info  replication

你可能感兴趣的:(Linux,redis,数据库,缓存,linux)