三台服务器redis一主2从三哨兵模式搭建
最近使用到了redis集群部署,使用一主二从三哨兵集群部署redis,将自己部署的过程中的使用心得分享给大家,希望大家以后部署的过程减少一些坑。
服务器准备
- 3台服务器 ,确定主redis和从redis;
- 服务器需要开通6379和26379端口,关闭防火墙;
- xftp和xshell软件准备 。
一、 部署redis
1.下载
wget http://download.redis.io/releases/redis-5.0.10.tar.gz
2. 解压
tar -zxvf redis-5.0.10.tar.gz
3.编译
进入目录命令 cd redis-5.0.10
编译命令 make
4. 安装
进入src命令 cd src/
安装命令 make install
5. 重点:
5.1新建 bin 和 etc 文件夹
进入目录命令 : cd /root/redis-5.0.10/
创建etc文件夹: mkdir etc
创建bin文件夹: mkdir bin
5.2装载配置文件在etc
复制文件命令 cp redis.conf /root/redis-5.0.10/etc
5.3在bin下装载如下文件
将mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-rdb、redis-cli、redis-server、redis-sentinel文件复制到 bin 文件夹
cd src/
cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server redis-sentinel /root/redis-5.0.10/bin/
5.4 改下redis.conf配置
修改后的配置如下
bind:0.0.0.0
protected-mode:no
daemonize:yes
requirepass:123456(密码自己设置)
5.5启动redis命令
切换到bin目录,使用下面命令启动redis
cd /root/redis-5.0.10/bin
./redis-server /root/redis-5.0.10/etc/redis.conf
5.6 客户端关闭命令:
方式一:redis-cli -p 端口号shutdown
方式二:首先ps -ef | grep redis 获取进程号 然后kill -9 进程号
二、redis主从配置
2.1主机redis配置文件
bind : 0.0.0.0 表示允许所有远程访问
port:端口号 (默认就好)
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
logfile:./redis.log (日志地址生成后在 bin 目录下可找到)
requirepass: redis的连接密码
masterauth: slave 服务连接 master 的密码(跟redis密码一致)
修改配置文件后需要重启redis
2.2 从redis配置文件
bind : 0.0.0.0 表示允许所有远程访问
port:端口号
protected-mode:no (关闭保护模式,可以外部访问)
daemonize:yes (设置为后台启动)
logfile:./redis.log (日志地址生成后在 bin 目录下可找到)
requirepass: redis的连接密码
replicaof: 主redis服务器ip 主redis端口#配置为master的从
masterauth: slave 服务连接 master 的密码(跟redis密码一致)
2.3主从测试
1.切换目录
cd /root/redis-5.0.10/bin/
2.连接客户端
./redis-cli -h ip地址 -p端口号
3.密码校验
auth redis密码
4.主从配置信息
info replication
有如下信息代表主从是ok的
Role:代表当前服务器的角色 master代表主redis,slave代表从redis
Connected_slaves 后面的数字代表从redis的数量
Slave:代表从redis的地址,端口等信息
在 master 上添加数据,看 slave 上是否会同步数据
三、哨兵配置
3.1主从哨兵配置一样
port 26379
sentinel monitor mymaster 主redis的ip 6379 2
sentinel auth-pass mymaster redis密码
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
logfile ./sentinel.log
3.2验证哨兵模式
1.分别在三台机器上,进入 redis 解压目录,依次执行
/usr/local/bin/redis-sentinel sentinel.conf
2. 连接任意 sentinel 节点
redis-cli -h ip -p 26379 -a 密码
3. redis 命令行上,执行 info sentinel 命令
验证 sentinel 状态为ok就是正确的,有如下类似信息,则配置完成