Redis Note23:主从模式搭建

Redis Note23:主从模式搭建

1. 安装

Redis版本5.0.x包含在默认的Ubuntu 20.04存储库中。
sudo apt update sudo apt install redis-server
安装完成后,Redis服务将自动启动。 要检查服务的状态,请输入以下命令:
sudo systemctl status redis-server
notion image

2. 搭建主从

  • redis01(192.168.92.145):主节点
  • redis02(192.168.92.146):从节点1
  • redis03(192.168.92.147):从节点2
这里的Redis端口号可以一样(在不同的机器上)
主机名
IP
Redis端口号
启动命令
redis01
192.168.92.145
6380
redis-server /etc/redis/redis6380.conf
redis02
192.168.92.146
6381
redis-server /etc/redis/redis6381.conf
redis03
192.168.92.147
6382
redis-server /etc/redis/redis6382.conf

2.1 配置主节点

  • redis01(192.168.92.145):主节点
  • 我这里主节点使用自定义配置

2.1.1 创建自定义启动文件

创建/etc/redis/redis6380.conf ,当然也可以在原文件/etc/redis/redis.conf 中直接修改,我这里为了保证原文件不动,创建一个新的文件引用,启动的时候以自己的文件启动即可。
# 引用Redis的默认配置文件 include /etc/redis/redis.conf # 需要注释掉bind(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可) bind 0.0.0.0 #关闭保护模式,开启的话,只有本机才可以访问redis protected-mode no #修改redis监听端口,可自定义 port 6380 # 后台启动 daemonize yes # pid存放目录 pidfile /var/run/redis/redis-server6380.pid # 设置redis日志存放路径 logfile /var/log/redis/redis-server6380.log # 生成dump.rdb文件 dbfilename dump6380.rdb # 修改持久化文件目录,可自定义 #dir /var/lib/redis # 主从节点配置replicaof <masterip> <masterport> #replicaof 127.0.0.1 6380 #主从同步master的密码 # masterauth 123456 #设置redis密码 # requirepass 123456 # 日志追加模式 #appendonly no

2.1.2 启动

root@redis01:~# redis-server /etc/redis/redis6380.conf # 查看,生成自定义的redis-server6380.log,成功启动 root@redis01:/var/log/redis# ls redis-server6380.log redis-server.log

2.1.3 使用

以自定义端口号启动,ping一下,返回PONG说明成功
root@redis01:~# redis-cli -p 6380 127.0.0.1:6380> ping PONG

2.2 配置从节点

默认的redis启动都是主节点,只需修改从节点即可。比主节点多一个配置!

2.2.1 配置从节点1:redis02

  • redis02(192.168.92.146):从节点1
1. 创建自定义启动文件
创建/etc/redis/redis6381.conf ,比主节点多一个配置replicaof 192.168.92.145 6380
# 引用Redis的默认配置文件 include /etc/redis/redis.conf # 需要注释掉bind(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可) bind 0.0.0.0 #关闭保护模式,开启的话,只有本机才可以访问redis protected-mode no #修改redis监听端口,可自定义 port 6381 # 后台启动 daemonize yes # pid存放目录 pidfile /var/run/redis/redis-server6381.pid # 设置redis日志存放路径 logfile /var/log/redis/redis-server6381.log # 生成dump.rdb文件 dbfilename dump6381.rdb # 修改持久化文件目录,可自定义 #dir /var/lib/redis # 主从节点配置replicaof <masterip> <masterport> replicaof 192.168.92.145 6380 #主从同步master的密码 # masterauth 123456 #设置redis密码 # requirepass 123456 # 日志追加模式 #appendonly no
  1. 启动
root@redis02:~# redis-server /etc/redis/redis6381.conf # 查看,生成自定义的redis-server6381.log,成功启动 root@redis02:~# ls /var/log/redis redis-server6381.log redis-server.log
  1. 使用
以自定义端口号启动,ping一下,返回PONG说明成功
root@redis02:~# redis-cli -p 6381 127.0.0.1:6380> ping PONG

2.2.2 配置从节点2:redis03

  • redis03(192.168.92.147):从节点2
1. 创建自定义启动文件
创建/etc/redis/redis6382.conf ,比主节点多一个配置replicaof 192.168.92.145 6380
# 引用Redis的默认配置文件 include /etc/redis/redis.conf # 需要注释掉bind(bind绑定的是自己机器网卡的ip,如果有多块网卡可以配多个ip,代表允许客户端通过机器的哪些网卡ip去访问,内网一般可以不配置bind,注释掉即可) bind 0.0.0.0 #关闭保护模式,开启的话,只有本机才可以访问redis protected-mode no #修改redis监听端口,可自定义 port 6382 # 后台启动 daemonize yes # pid存放目录 pidfile /var/run/redis/redis-server6382.pid # 设置redis日志存放路径 logfile /var/log/redis/redis-server6382.log # 生成dump.rdb文件 dbfilename dump6382.rdb # 修改持久化文件目录,可自定义 #dir /var/lib/redis # 主从节点配置replicaof <masterip> <masterport> replicaof 192.168.92.145 6380 #主从同步master的密码 # masterauth 123456 #设置redis密码 # requirepass 123456 # 日志追加模式 #appendonly no
  1. 启动
root@redis03:~# redis-server /etc/redis/redis6382.conf # 查看,生成自定义的redis-server6382.log,成功启动 root@redis03:~# ls /var/log/redis redis-server6382.log redis-server.log
  1. 使用
以自定义端口号启动,ping一下,返回PONG说明成功
root@redis03:~# redis-cli -p 6382 127.0.0.1:6380> ping PONG

2.3 查看

主节点:redis01查看
# redis01 127.0.0.1:6380> info
notion image
从节点1:redis02查看
# redis02 127.0.0.1:6381> info
notion image

2.4 使用命令

# 启动redis集群,顺序主->从 # 开启主节点redis01 root@redis01:~# redis-server /etc/redis/redis6380.conf # 开启从节点redis02 root@redis02:~# redis-server /etc/redis/redis6381.conf # 开启从节点redis03 root@redis03:~# redis-server /etc/redis/redis6382.conf # 停止服务redis01 root@redis01:~# redis-cli -p 6380 shutdown # 停止服务redis02 root@redis02:~# redis-cli -p 6381 shutdown # 停止服务redis03 root@redis03:~# redis-cli -p 6382 shutdown # 查看服务 ps -ef | grep redis # 使用redis01 root@redis01:~# redis-cli -p 6380 # 使用redis02 root@redis02:~# redis-cli -p 6381 # 使用redis03 root@redis03:~# redis-cli -p 6382