Redis主从集群与部署基础配置

Redis主从集群与部署基础配置

一.介绍

​ 在一主多从的 Redis 架构中,从节点可以起到数据冗余备份和读写分离的作用。如果主节点遇到故障导致无法提供服务时,可以采用手动方式将其一个从节点提升为主节点,保证 Redis主从能够正常工作。

Redis集群分为主从,哨兵模式,集群模式,各自应用场景如下

单机模式:适用于开发环境和数据量不大的情况。

主从复制模式:适用于需要读写分离和数据冗余的场景,特点是可读写分离。

哨兵模式:适用于需要自动故障转移的高可用性场景。

集群模式:适用于需要高可用性和水平扩展的场景。

二.安装Redis

环境准备,两台服务器均需执行,

  • 主节点(Master):192.168.3.9
  • 从节点(Slave):192.168.3.10
  • 操作系统:CentOS 7.6
  • Redis 版本:6.2.6

关闭防火墙和SELinux

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.1 下载并编译 Redis

wget https://download.redis.io/releases/redis-6.2.6.tar.gz
tar xzf redis-6.2.6.tar.gz
cd redis-6.2.6
make && make install

在这里插入图片描述

在这里插入图片描述

2.2创建配置文件和数据目录

mkdir -p /etc/redis /var/lib/redis /var/log/redis
chmod -R 777 /var/lib/redis /var/log/redis
cp redis.conf /etc/redis/

在这里插入图片描述

三 .配置 Redis 主从集群

3.1 主节点(Master)配置(192.168.3.9)

vim /etc/redis/redis.conf

完整配置(带详细注释)

# 网络绑定(允许所有IP访问)
bind 0.0.0.0
# 关闭保护模式(允许远程连接)
protected-mode no
# Redis 默认端口
port 6379
# 以守护进程方式运行,可后台运行
daemonize yes
# PID 文件路径
pidfile /var/run/redis_6379.pid
# 日志文件路径
logfile "/var/log/redis/redis.log"
# 数据存储目录
dir /var/lib/redis

# 持久化配置(AOF + RDB)
appendonly yes               # 开启AOF持久化
appendfsync everysec         # 每秒同步一次AOF
save 900 1                   # 900秒内至少1次修改触发RDB
save 300 10                  # 300秒内至少10次修改触发RDB
save 60 10000                # 60秒内至少10000次修改触发RDB

# 主从复制安全认证
requirepass Redis@123        # 主节点访问密码(从节点需相同)
masterauth Redis@123         # 从节点访问主节点的密码

# 主从复制优化
repl-backlog-size 128mb      # 复制缓冲区大小(避免全量同步)
repl-diskless-sync no        # 禁用无盘同步(生产环境建议关闭)
replica-read-only yes        # 从节点只读

# 内存管理
maxmemory 4gb                # 最大内存限制(按需调整)
maxmemory-policy volatile-lru # 内存淘汰策略(LRU)

3.2 从节点(Slave)配置(192.168.3.10)

vim /etc/redis/redis.conf

主要配置项与主节点一致,与主节点不同的配置项

# 指定主节点IP和端口
replicaof 192.168.3.9 6379
# 主节点密码(必须与主节点requirepass一致)
masterauth Redis@123

完整配置:

# 网络绑定(允许所有IP访问)
bind 0.0.0.0
# 关闭保护模式(允许远程连接)
protected-mode no
# Redis 默认端口
port 6379
# 以守护进程方式运行
daemonize yes
# PID 文件路径
pidfile /var/run/redis_6379.pid
# 日志文件路径
logfile "/var/log/redis/redis.log"
# 数据存储目录
dir /var/lib/redis

# 持久化配置(AOF + RDB)
appendonly yes               # 开启AOF持久化
appendfsync everysec         # 每秒同步一次AOF
save 900 1                   # 900秒内至少1次修改触发RDB
save 300 10                  # 300秒内至少10次修改触发RDB
save 60 10000                # 60秒内至少10000次修改触发RDB

# 主从复制安全认证
requirepass Redis@123        # 主节点访问密码(从节点需相同)
masterauth Redis@123         # 从节点访问主节点的密码

# 指定主节点IP和端口
replicaof 192.168.3.9 6379
# 主节点密码(必须与主节点requirepass一致)
masterauth Redis@123

# 主从复制优化
repl-backlog-size 128mb      # 复制缓冲区大小(避免全量同步)
repl-diskless-sync no        # 禁用无盘同步(生产环境建议关闭)
replica-read-only yes        # 从节点只读

# 内存管理
maxmemory 4gb                # 最大内存限制(按需调整)
maxmemory-policy volatile-lru # 内存淘汰策略(LRU)

四 .启动redis服务

4.1 启动主节点(192.168.3.9)

redis-server /etc/redis/redis.conf

4.2 启动从节点(192.168.3.10)

redis-server /etc/redis/redis.conf

4.3 检查服务状态

ps -ef | grep redis
netstat -tulnp | grep 6379

在这里插入图片描述

五.验证主从同步

5.1 在主节点写入数据

redis-cli -a Redis@123
127.0.0.1:6379> SET test_key "redisTest"
OK

在这里插入图片描述

5.2 在从节点读取数据

redis-cli -a Redis@123
127.0.0.1:6379> GET test_key
"redisTest"  # 返回该值说明同步成功

在这里插入图片描述

### 5.3 查看主从状态

redis-cli -a Redis@123 INFO replication

主节点服务器查询,输出:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.3.10,port=6379,state=online,offset=2350,lag=0
master_failover_state:no-failover
master_replid:bb444e9b4207ff97e7b7481a24aa9c8720eef9eb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2350
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:134217728
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2350

在这里插入图片描述

从节点服务器查询,输出示例:

Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
# Replication
role:slave
master_host:192.168.3.9
master_port:6379
master_link_status:up
master_last_io_seconds_ago:8
master_sync_in_progress:0
slave_read_repl_offset:2238
slave_repl_offset:2238
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:bb444e9b4207ff97e7b7481a24aa9c8720eef9eb
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:2238
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:134217728
repl_backlog_first_byte_offset:1
repl_backlog_histlen:2238

在这里插入图片描述

六.故障恢复与管理

### 6.1 手动主从切换(主节点宕机时)

在从节点执行:

redis-cli -a Redis@123
127.0.0.1:6379> REPLICAOF NO ONE  # 提升为新的主节点

6.2 重新配置从节点

127.0.0.1:6379> REPLICAOF 192.168.3.9 6379  # 重新指向主节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值