最近在做springboot2.X的项目,里面用到redis的服务,公司里用到的是哨兵模式,因此我自己搭建了一套哨兵模式的Redis,因资源有限,所以把所有节点放在同一台服务器上(10.10.55.51,我的个人服务器)。
闲话不多说,直接说操作。
- 下载redis-4.0.1.tar.gz,并上传到linux系统的 【/usr/mpsp】(路径随便指定,你当前用户的可操作路径就行)
- 在/usr/mpsp目录下,执行 tar -zxvf redis-4.0.1.tar.gz 将上传的包解压开。
- 进入【/usr/mpsp/redis-4.0.1】 目录,指定安装目录【/usr/mpsp/redis/redis-4.0.1/】进行安装(如果没有gcc,需要root执行以下命令先安装上:yum install gcc-c++):
make PREFIX=/usr/mpsp/redis/redis-4.0.1 install
- 在【/usr/mpsp/redis/redis-4.0.1】 目录下,新建 三目录 conf data log,conf
- conf : 存放redis的配置文件
- data : 存放redis的数据文件
- log : 存放redis的日志
cd /usr/mpsp/redis mkdir -p conf data log
- 进入【/usr/mpsp/redis-4.0.1 】目录,复制redis.conf 到安装的目录下
- 执行复制命令:
redis-16379.conf中需要修改的内容如下:cp redis.conf /usr/mpsp/redis/conf/redis-16379.conf
bind 0.0.0.0 protected-mode no port 16379 daemonize yes dbfilename dump-16379.rdb dir /usr/mpsp/redis/data/ slave-serve-stale-data yes pidfile /usr/mpsp/redis/redis-4.0.1/redis_16379.pid logfile /usr/mpsp/redis/log/redis-16379.log
- 执行复制命令
redis-16380.conf中需要修改的内容如下:cp redis.conf /usr/mpsp/redis/conf/redis-16380.conf
bind 0.0.0.0 protected-mode no port 16380 daemonize yes dbfilename dump-16380.rdb dir /usr/mpsp/redis/data/ slave-serve-stale-data yes pidfile /usr/mpsp/redis/redis-4.0.1/redis_16380.pid logfile /usr/mpsp/redis/log/redis-16380.log slaveof 10.10.55.51 16379
最后的【slaveof 10.10.55.51 16379】是slave节点的必须配置,master无需配置
- 执行复制命令
redis-16381.conf中需要修改的内容如下:cp redis.conf /usr/mpsp/redis/conf/redis-16381.conf
bind 0.0.0.0 protected-mode no port 16381 daemonize yes dbfilename dump-16381.rdb dir /usr/mpsp/redis/data/ slave-serve-stale-data yes pidfile /usr/mpsp/redis/redis-4.0.1/redis_16381.pid logfile /usr/mpsp/redis/log/redis-16381.log slaveof 10.10.55.51 16379
最后的【slaveof 10.10.55.51 16379】是slave节点的必须配置,master无需配置
- 执行复制命令:
- 进入【/usr/mpsp/redis-4.0.1 】目录,复制sentinel.conf 到安装的目录下
- 执行复制命令
sentinel-26379.conf需要修改的内容如下:cp sentinel.conf /usr/mpsp/redis/conf/sentinel-26379.conf
#bind 0.0.0.0 protected-mode no port 26379 daemonize yes sentinel monitor mymaster 10.10.55.51 16379 2 sentinel down-after-milliseconds mymaster 5000 # 增加日志输出 logfile "/usr/mpsp/redis/log/sentinel-26379.log"
- 执行复制命令
sentinel-26380.conf需要修改的内容如下:cp sentinel.conf /usr/mpsp/redis/conf/sentinel-26380.conf
#bind 0.0.0.0 protected-mode no port 26380 daemonize yes sentinel monitor mymaster 10.10.55.51 16379 2 sentinel down-after-milliseconds mymaster 5000 logfile "/usr/mpsp/redis/log/sentinel-26380.log"
- 执行复制命令
sentinel-26381.conf需要修改的内容如下:cp sentinel.conf /usr/mpsp/redis/conf/sentinel-26381.conf
#bind 0.0.0.0 protected-mode no port 26381 daemonize yes sentinel monitor mymaster 10.10.55.51 16379 2 sentinel down-after-milliseconds mymaster 5000 logfile "/usr/mpsp/redis/log/sentinel-26381.log"
- 执行复制命令
- 启动redis服务后,再启动sentinel服务
在【/usr/mpsp/redis】创建启动脚本 start.sh,内容如下:
#!/bin/bash
./redis-4.0.1/bin/redis-server /usr/mpsp/redis/conf/redis-16379.conf
echo "redis-16379启动完成"
./redis-4.0.1/bin/redis-server /usr/mpsp/redis/conf/redis-16380.conf
echo "redis-16380启动完成"
./redis-4.0.1/bin/redis-server /usr/mpsp/redis/conf/redis-16381.conf
echo "redis-16381启动完成"
./redis-4.0.1/bin/redis-sentinel /usr/mpsp/redis/conf/sentinel-26379.conf
echo "sentinel-26379 启动完成"
./redis-4.0.1/bin/redis-sentinel /usr/mpsp/redis/conf/sentinel-26380.conf
echo "sentinel-26380 启动完成"
./redis-4.0.1/bin/redis-sentinel /usr/mpsp/redis/conf/sentinel-26381.conf
echo "sentinel-26381 启动完成"
注意点: 先启动 redis的master,再启动 redis的slave,然后再启 sentinel的master,最后启sentinel的slave,顺序不能有错。