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

阿亮说技术
4 声望3 粉丝

程序人生,一路踩坑,一路填坑