Redis主从复制实验
一、实验环境
-
操作系统:RHEL 9
-
Redis版本:Redis 7.2.4
-
主机数量:3台(1台主节点,2台从节点)
-
主机配置:
主机 IP地址 Redis端口 主节点 192.168.65.131 6379 从节点1 192.168.65.132 6379 从节点2 192.168.65.133 6379
二、实验步骤
(一)安装Redis
-
安装依赖
yum install -y gcc gcc-c++ make
解释:安装Redis所需的编译工具和库。
-
下载并编译Redis
wget https://download.redis.io/releases/redis-7.2.4.tar.gz tar -zxvf redis-7.2.4.tar.gz cd redis-7.2.4 make make install PREFIX=/usr/local/redis
解释:
-
wget
:下载Redis源码包。 -
tar
:解压源码包。 -
make
:编译Redis。 -
make install
:安装Redis到指定目录(/usr/local/redis
)。
-
-
创建符号链接
ln -s /usr/local/redis/bin/* /usr/local/bin/
解释:将Redis的可执行文件链接到全局命令路径,方便直接调用。
/usr/local/bin
通常被包含在系统的 PATH
环境变量中,这意味着你可以在任何位置直接调用该目录下的命令,而不需要指定完整的路径。通过将Redis的可执行文件链接到 /usr/local/bin
,你可以在任何位置直接使用 redis-server
和 redis-cli
等命令
(二)配置主节点
-
创建主节点配置文件
mkdir -p /usr/local/redis/6379 cp redis.conf /usr/local/redis/6379/
解释:创建主节点的配置目录,并复制默认配置文件。
-
修改主节点配置 编辑
/usr/local/redis/6379/redis.conf
,修改以下内容:daemonize yes port 6379 pidfile /var/run/redis_6379.pid logfile "/var/log/redis_6379.log" dir /usr/local/redis/6379 bind 0.0.0.0 protected-mode no appendonly yes
解释:
-
daemonize yes
:以守护进程方式运行Redis。 -
port 6379
:指定Redis服务端口。 -
pidfile
:指定PID文件路径。 -
logfile
:指定日志文件路径。 -
dir
:指定数据文件存储目录。 -
bind 0.0.0.0
:允许所有IP访问Redis服务。 -
protected-mode no
:关闭保护模式,允许远程连接。 -
appendonly yes
:开启AOF持久化,确保数据安全。
-
-
启动主节点
redis-server /usr/local/redis/6379/redis.conf
解释:使用配置文件启动Redis主节点服务。
(三)配置从节点
从节点1(192.168.65.132)
-
创建从节点1配置文件
mkdir -p /usr/local/redis/6379 cp redis.conf /usr/local/redis/6379/
解释:创建从节点1的配置目录,并复制默认配置文件。
-
修改从节点1配置 编辑
/usr/local/redis/6379/redis.conf
,修改以下内容:daemonize yes port 6379 pidfile /var/run/redis_6379.pid logfile "/var/log/redis_6379.log" dir /usr/local/redis/6379 bind 0.0.0.0 protected-mode no replicaof 192.168.65.131 6379 masterauth <主节点密码> # 如果主节点有密码,需填写 appendonly yes
解释:
-
replicaof 192.168.65.131 6379
:指定主节点的IP和端口,使当前节点成为从节点。 -
masterauth
:如果主节点设置了密码,需要在此处填写主节点的密码。
-
-
启动从节点1
redis-server /usr/local/redis/6379/redis.conf
解释:使用配置文件启动从节点1服务。
从节点2(192.168.65.133)
-
创建从节点2配置文件
mkdir -p /usr/local/redis/6379 cp redis.conf /usr/local/redis/6379/
解释:创建从节点2的配置目录,并复制默认配置文件。
-
修改从节点2配置 编辑
/usr/local/redis/6379/redis.conf
,修改以下内容:daemonize yes port 6379 pidfile /var/run/redis_6379.pid logfile "/var/log/redis_6379.log" dir /usr/local/redis/6379 bind 0.0.0.0 protected-mode no replicaof 192.168.65.131 6379 masterauth <主节点密码> # 如果主节点有密码,需填写 appendonly yes
解释:配置与从节点1类似,指定主节点的IP和端口。
-
启动从节点2
redis-server /usr/local/redis/6379/redis.conf
解释:使用配置文件启动从节点2服务。
(四)验证主从复制
-
连接主节点
redis-cli -h 192.168.65.131 -p 6379 set key1 value1
解释:通过
redis-cli
连接主节点,并设置一个键值对。 -
连接从节点验证数据同步
-
连接到从节点1:
redis-cli -h 192.168.65.132 -p 6379 get key1
-
连接到从节点2:
redis-cli -h 192.168.65.133 -p 6379 get key1
解释:通过
redis-cli
连接从节点,并获取主节点设置的键值对,验证数据是否同步。 -
如果从节点返回的值与主节点一致,则说明主从复制配置成功。