一、什么是主从复制?
Redis的主从复制(Master-Slave Replication)是一种数据复制机制,其中一个Redis实例充当主节点(Master),而其他一个或多个Redis实例则充当从节点(Slave)。主从复制通过将主节点的数据复制到从节点来实现数据的同步和复制。
在主从复制中,主节点负责接收写操作和读操作,从节点一般只能读,从节点只负责接收主节点发送过来的数据副本,并将其存储在本地。主节点会周期性地将自己的数据快照或增量日志发送给从节点,从节点接收到数据后进行重放,使得自己的数据与主节点保持同步。
主从复制的主要目的是实现数据的冗余和故障恢复。通过将数据复制到多个从节点上,即使主节点发生故障,从节点仍然可以提供读取服务,从而实现故障转移和高可用性。此外,主从复制还可以提供读操作的负载均衡,通过将读请求分散到多个从节点上,减轻主节点的读取压力,提高系统的整体性能。
二、 安装redis
我用的Ubuntu系统,安装步骤如下:
#更新Ubuntu的软件包列表
sudo apt update
#安装Redis服务器
sudo apt install redis-server
#检查Redis服务的运行状态
sudo systemctl status redis-server
#如果Redis服务未运行,你可以使用以下命令手动启动它
sudo systemctl start redis-server
#验证安装
redis-cli
三、使用命令行方式设置主从复制
1. 启动一个Redis实例作为主数据库
不加任何参数启动:
redis-server
2. 启动一个Redis实例作为从数据库
#从库监听6380端口 并连到主库上
redis-server --port 6380 --slaveof 127.0.0.1 6379
3. 启动两个Redis-cli实例验证主从复制结果
(1)打开redis-cli实例连接到主数据库
redis-cli -p 6379
插入两条数据:
(2)打开redis-cli实例连接到从数据库
访问在主库中插入的数据:
尝试在从库中插入数据:会发现从库只能读不能写
4. 查看主从复制相关信息
四、使用配置文件方式设置主从复制
1. 复制redis配置文件
默认安装的redis的配置文件在 /etc/redis下,文件名为 redis.conf
将这个配置文件复制到 /home 下,复制两份,并且改名为 redisA.conf 和redisB.conf
为了方便查看,删除配置文件中的空行和注释行:
sed -i '/^\s*#/d;/^\s*$/d' redisA.conf
sed -i '/^\s*#/d;/^\s*$/d' redisB.conf
2. 配置主数据库
使用redisA.conf 文件,端口改为6381
3. 配置从数据库
修改redisB.conf文件,端口改为6382
添加以下配置启用主从复制:
4. 启动redis服务
5. 使用redis-cli连接主从数据库