Redis 3.2.8 集群模式+Sentinel多Master部署

环境准备
CentOS 7.3
redis1 172.18.1.101:7001 master
redis2 172.18.1.102:7002 master
redis3 172.18.1.103:7003 master
redis4 172.18.1.104:7004 slave
redis5 172.18.1.105:7005 slave
redis6 172.18.1.106:7006 slavenode

中止防火墙(有可能还须要iptables加规则)
systemctl stop firewalld.service
systemctl disable firewalld.service redis

修改内核参数
vi /etc/sysctl.conf
vm.overcommit_memory = 1ruby

查看效果
sysctl -papp

安装必要的软件包
yum -y install gcc automake autoconf libtool make telnet ruby-devel ruby-irb ruby-libs ruby-rdoc ruby rubygems-devel rubygems
gem install redis #忘了这一步会致使使用redis-trib.rb建立集群的时候报错测试

编译安装Redis
cd ~
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
tar -zxf redis-3.2.8.tar.gz;cd redis-3.2.8;make
make install PREFIX=/usr/local/redis
mkdir /usr/local/redis/etc;mkdir /usr/local/redis/db;cp redis.conf /usr/local/redis/etc/;cp ./src/redis-trib.rb /usr/local/redis/bin/ui

修改配置文件,密码为password
vi /usr/local/redis/etc/redis.conf日志

#bind 127.0.0.1 #这里注释掉,不然会致使其它节点没法与本节点通讯
protected-mode yes
port 7001 #不一样机器端口不同,咱们用7001-7006 #若是用同样的端口,建立集群会出问题
daemonize yes
pidfile /var/run/redis_7001.pid #不一样机器PID文件不同,咱们用7001-7006 #能够用同一个,可是为了统一仍是建议改为不一样的
logfile "/var/log/redis.log"
dir /usr/local/redis/db/
masterauth password
requirepass password
appendonly yes
cluster-enabled yes
cluster-config-file nodes-7001.conf #不一样机器nodes.conf文件不同,咱们用7001-7006 #缘由同pidfile
cluster-node-timeout 15000server

启动Redis测试可否正常启动,注意看一下端口
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.confip

备份Redis配置文件,将来若是改了其余设置除了问题,能够留做比对
cp -p redis.conf redis.conf.bakget

查看日志
tail -100f /var/log/redis.log

修改ruby脚本,不然没法建立集群
vi /usr/local/share/gems/gems/redis-3.3.3/lib/redis/client.rb
修改DEFAULTS里面的password一项,咱们这里用的是"password",必定要加引号

建立集群,这里必定要用IP和端口,不能用hostname
/usr/local/redis/bin/redis-trib.rb create --replicas 1 172.18.1.101:7001 172.18.1.102:7002 172.18.1.103:7003 172.18.1.104:7004 172.18.1.105:7005 172.18.1.106:7006

查看哪些Redis实例被定为Master
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 7001
cluster nodes

拷贝sentinel.conf到etc下
cp /root/redis-3.2.8/sentinel.conf /usr/local/redis/etc

编辑sentinel.conf
vi /usr/local/redis/etc/sentinel.conf

protected-mode no
port 27001 #不一样Sentinel端口不同,咱们用27001-27003

sentinel monitor mymaster1 172.18.1.101 7001 2
sentinel monitor mymaster2 172.18.1.102 7002 2
sentinel monitor mymaster3 172.18.1.103 7003 2

sentinel down-after-milliseconds mymaster1 10000
sentinel down-after-milliseconds mymaster2 10000
sentinel down-after-milliseconds mymaster3 10000

sentinel parallel-syncs mymaster1 1
sentinel parallel-syncs mymaster2 1
sentinel parallel-syncs mymaster3 1

sentinel failover-timeout mymaster1 15000
sentinel failover-timeout mymaster2 15000
sentinel failover-timeout mymaster3 15000

daemonize yes
logfile "/var/log/sentinel.log"

备份Sentinel配置文件,将来若是改了其余设置除了问题,能够留做比对
cp -p sentinel.conf sentinel.conf.bak

启动Sentinel
/usr/local/redis/bin/redis-sentinel /usr/local/redis/etc/sentinel.conf

经常使用命令ps -ef | grep redistail -100f /var/log/redis.logtail -100f /var/log/sentinel.log/usr/local/redis/bin/redis-cli -h 172.18.1.101 -p 7001 -a passwordkill $(ps -ef | grep redis | grep -v grep | awk '{print $2}')

相关文章
相关标签/搜索