Redis集群和哨兵搭建说明_亲测成功
1.运行环境说明
- 1.1 服务器系统
主流Linux系统
- 1.2 Redis版本
Redis-5.0.3
redis从3.0开始支持集群
2. Redis安装
1 新建一个软件保存目录如:/data/software/
cd /data/software/
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar -zxvf redis-5.0.3.tar.gz
2 新建一个应用目录如:/data/apps
mv redis-5.0.3 /data/apps
cd /data/apps/redis-5.0.3
make
3.集群搭建
- 3.1 机器准备
准备三台机器,分别安装redis
192.168.1.51 主-从
192.168.1.52 主-从
192.168.1.53 主-从
- 3.1.1 在51机器上执行
cd /data/apps/redis-5.0.3
mkdir 7000
mkdir 7001
cp redis.conf 7000/redis.conf
修改配置
vim 7000/redis.conf
#bind 127.0.0.1 #可以远程访问
protected-mode no #保护模式关闭
daemonize yes #后台启动
port 7000
pidfile /var/run/redis_7000.pid
logfile "/data/apps/redis-5.0.3/7000/7000.log"
dbfilename dump.rdb
dir /data/apps/redis-5.0.3/7000/
cluster-enabled yes #开启集群
cluster-config-file nodes_7000.conf #集群的配置文件
cluster-node-timeout 5000 #请求超时 设置5秒够了
appendonly yes #aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendfilename "appendonly7000.aof"
设置集群密码 在配置文件里面增加密码选项,一定要加上masterauth,不然Redirected的时候会失败
masterauth abcd_123
requirepass abcd_123
cp 7000/redis.conf 7001/
#修改7001目录下redis.conf的对应配置,7000改为7001
3.1.2 在52机器上执行
与上面51机器配置类似, 把对应配置改成7002和7003。
mkdir 7002 mkdir 7003 7002/redis.conf 7003/redis.conf
3.1.3 在53机器上执行
与上面51机器配置类似, 把对应配置改成7004和7005。
mkdir 7004 mkdir 7005 7004/redis.conf 7005/redis.conf
- 3.1.4 分别启动6台Redis
cd /data/apps/redis-5.0.3/
src/redis-server 7000/redis.conf
src/redis-server 7001/redis.conf
src/redis-server 7002/redis.conf
src/redis-server 7003/redis.conf
src/redis-server 7004/redis.conf
src/redis-server 7005/redis.conf
ps -ef | grep redis 查看启动情况
- 3.1.5 在某一台上执行加入集群
三主三从
./redis-cli --cluster create 192.168.1.51:7000 192.168.1.52:7002 192.168.1.53:7004 192.168.1.51:7001 192.168.1.52:7003 192.168.1.53:7005 --cluster-replicas 1 -a abcd_123
注意: 输入yes确认之前, 先看好哪几台是主,哪几台是从 (如果只有3台机器,确定是交叉主从后输入yes创建)
如果是外网访问:需要开放端口7000 17000 ...等所对应端口
- 3.1.6测试集群
客户端连接测试:
./redis-cli -h 192.168.1.51 -c -p 7000 -a abcd_123
4. 哨兵搭建
- 4.1机器准备
准备三台机器,分别安装redis
192.168.1.51 主
192.168.1.52 从
192.168.1.53 从
- 4.1.1 在51主机器上执行
cd /data/apps/redis-5.0.3
mkdir 8000
cp redis.conf 8000/redis.conf
修改配置
vim 8000/redis.conf
#bind 127.0.0.1 #可以远程访问
protected-mode no #保护模式关闭
daemonize yes #后台启动
port 8000
pidfile /var/run/redis_8000.pid
logfile "/data/apps/redis-5.0.3/8000/8000.log"
dbfilename dump.rdb
dir /data/apps/redis-5.0.3/8000/
appendonly yes #aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendfilename "appendonly8000.aof"
masterauth abcd_123
requirepass abcd_123
打开redis的key过期监听提醒
notify-keyspace-events Ex
注释
#notify-keyspace-events ""
- 4.1.2 在52从机器上执行
cd /data/apps/redis-5.0.3
mkdir 8001
cp redis.conf 8001/redis.conf
修改配置
vim 8001/redis.conf
#bind 127.0.0.1 #可以远程访问
protected-mode no #保护模式关闭
daemonize yes #后台启动
port 8001
pidfile /var/run/redis_8001.pid
logfile "/data/apps/redis-5.0.3/8001/8001.log"
dbfilename dump.rdb
dir /data/apps/redis-5.0.3/8001/
appendonly yes #aof日志开启 有需要就开启,它会每次写操作都记录一条日志
appendfilename "appendonly8001.aof"
replicaof 192.168.1.51 8000 # 主服务这句话注释,从服务配置的两台需要开启。配置主服务的ip和port
masterauth abcd_123
requirepass abcd_123
打开redis的key过期监听提醒
notify-keyspace-events Ex
注释
#notify-keyspace-events ""
- 4.1.3 在53从机器上执行
与上面52从机器配置类似, 把对应配置改成8002。
- 4.1.4 分别启动3台Redis
cd /data/apps/redis-5.0.3/
src/redis-server 8000/redis.conf
src/redis-server 8001/redis.conf
src/redis-server 8002/redis.conf
ps -ef | grep redis 查看启动情况
- 4.1.5 哨兵配置51机器
cp redis-5.0.3/sentinel.conf 8000/
修改配置
vim 8000/sentinel.conf
protected-mode no
port 28000
daemonize yes
pidfile /var/run/redis-sentinel28000.pid
logfile "/data/apps/redis-5.0.3/8000/28000.log"
dir /data/apps/redis-5.0.3/8000
sentinel monitor mymaster 192.168.1.51 8000 2
sentinel auth-pass mymaster abcd_123
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
- 4.1.6 哨兵配置52机器
与上面51哨兵配置类似, 把对应配置改成28001。
- 4.1.7 哨兵配置53机器
与上面51哨兵配置类似, 把对应配置改成28002。
- 4.1.8分别启动3台哨兵进程
cd /data/apps/redis-5.0.3/
src/redis-sentinel 8000/sentinel.conf
src/redis-sentinel 8001/sentinel.conf
src/redis-sentinel 8002/sentinel.conf
ps -ef | grep redis 查看启动情况
- 4.1.9测试哨兵
./redis-cli -h 192.168.1.51 -p 8000 -a abcd_123
info replication