您现在的位置是:首页 >技术教程 >Redis 主从 + 哨兵模式搭建网站首页技术教程
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后