您现在的位置是:首页 >技术教程 >Redis 主从 + 哨兵模式搭建网站首页技术教程

Redis 主从 + 哨兵模式搭建

S-_-Lei 2024-06-14 17:19:58
简介Redis 主从 + 哨兵模式搭建

前言:以Linux环境为示例

一、整体架构(1主 + 2从 + 3哨兵)

二、redis 安装

1、安装路径:/usr/local/redis/redis-6382(可自行指定)

2、解压安装包:

直接解压:tar -axvf redis-5.0.10.tar.gz 

或

解压到指定路径:tar -axvf redis-5.0.10.tar.gz -C /usr/local/redis/redis-6382

 3、进入解压后的/redis-5.0.10/src下,执行make命令并指定安装路径:

make PREFIX=/usr/local/redis/redis-6382 install 

开始安装:

 安装后:

4、因为要满足:1主+2从+3哨兵 的框架,所以需要安装6个redis,因为是在同一台虚拟机上,所以端口分别用:6379(主)、6380(从)、6381从)、26379(哨兵)、26380(哨兵)、26381(哨兵),如果条件允许,有6台不同的服务器,6个redis的端口均可设置成一样

三、redis配置

1、主库配置

在 redis 安装 bin目录下,创建 redis.conf 文件,并进行配置

# 修改redis配置文件:redis.conf

# 1. 修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址
bind 0.0.0.0
# 2. 设置端口
port 6379
# 3. 保护模式修改为否,允许远程连接
protected-mode no
# 4. 设定密码
requirepass "123456"
# 5. 设定主库密码与当前库密码同步,保证从库能够提升为主库
masterauth "123456"
# 6. 打开AOF持久化支持
appendonly yes
# 7. 输入日志信息
logfile ./redis.log
# 8. 守护进程模式启动
daemonize yes 

2、从库配置

在 redis 安装 bin目录下,创建 redis.conf 文件,并进行配置

# 修改redis配置文件:redis.conf

# 1. 修改绑定ip为服务器内网ip地址,做绑定,三台各自填写各自的ip地址
bind 0.0.0.0
# 2. 设置端口
port 6379
# 3. 保护模式修改为否,允许远程连接
protected-mode no
# 4. 设定密码
requirepass 123456
# 5. 设定主库密码与当前库密码同步,保证从库能够提升为主库
masterauth 123456
# 6. 打开AOF持久化支持
appendonly yes
# 7. 输入日志信息
logfile ./redis.log
# 8. 守护进程模式启动
daemonize yes
# 9.主库为主虚拟机1的地址
slaveof 192.168.230.133 6379

3、哨兵配置

在 redis 安装 bin目录下,创建 sentinel.conf 文件,并进行配置

# 修改redis-sentinel配置文件:redis-sentinel.conf

# 1. 绑定的地址
bind 0.0.0.0
# 2. 设置端口
port 6379
# 3. 保护模式修改为否,允许远程连接
protected-mode no
# 4. 守护进程模式启动
daemonize yes
# 5. 输入日志信息
logfile ./sentinel.log
# 6. 设定sentinel myid 每个都不一样,使用yum安装的时候,直接就生成了
sentinel myid f761aa37bc8dd70a0ba6ace5d5bef7fb1a49cc14
# 7. 设定监控地址,为对应的主redis库的内网地址
sentinel monitor mymaster 192.168.230.133 6379 2
# 8. 设定5秒内没有响应,说明服务器挂了,需要将配置放在sentinel monitor mymaster 192.168.230.133 6379 2下面
sentinel down-after-milliseconds mymaster 5000
# 9. 设定15秒内master没有活起来,就重新选举主
sentinel failover-timeout mymaster 15000
# 10. 表示如果master重新选出来后,其它slave节点能同时并行从新master同步缓存的台数有多少个,显然该值越大,所有slave节点完成同步切换的整体速度越快,但如果此时正好有人在访问这些slave,可能造成读取失败,影响面会更广。最保定的设置为1,只同一时间,只能有一台干这件事,这样其它slave还能继续服务,但是所有slave全部完成缓存更新同步的进程将变慢。
sentinel parallel-syncs mymaster 2
# 11. 主数据库密码,需要将配置放在sentinel monitor master 192.168.230.133 6379 2下面
sentinel auth-pass mymaster 123456

四、启动

1、启动主库(6379)
1.1、启动:./redis-server redis.conf

1.2、进入redis-6379服务:./redis-cli -p 6379

1.3、认证:auth pwd

1.4、查看数据库信息:info replication

2、启动从库(6380 和 6381)

2.1、启动:./redis-server redis.conf

2.2、进入redis-6380服务:./redis-cli -p 6380

2.3、认证:auth pwd

2.4、查看数据库信息:info replication

3、启动哨兵(26379 、26381 和 26382)

3.1、启动:./redis-sentinel sentinel.conf

3.2、进入redis-26379服务:./redis-cli -p 26379

3.3、查看数据库信息:info sentinel

五、测试

1、主/从同步测试

主库写入

从库读取

2、从库只读性测试

3、主/从切换测试

 停用6379前

  停用6379后

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。