下载安装包
yum -y
install wget
wget http://download.redis.io/releases/redis-5.0.8.tar.gz
开始安装
tar xf redis-5.0.8.tar.gz -C /usr/src/
yum -y
install gcc gcc-c++
make
cd /usr/src/redis-5.0.8/
cat README.md
make
配置多实例
mkdir -p /usr/local/redis
cd /usr/local/redis/
mkdir redis
{1,2,3
}
cd /usr/src/redis-5.0.8/
cp redis.conf /usr/local/redis/redis1/redis_6380.conf
cp redis.conf /usr/local/redis/redis2/redis_6381.conf
cp redis.conf /usr/local/redis/redis3/redis_6382.conf
cp sentinel.conf /usr/local/redis/redis1/sentinel_26380.conf
cp sentinel.conf /usr/local/redis/redis2/sentinel_26381.conf
cp sentinel.conf /usr/local/redis/redis3/sentinel_26382.conf
主配置
vim redis_6380.conf
bind 0.0.0.0
daemonize
yes
port 6380
--------------sentinel_26380.conf -------------------
port 26380
daemonize
yes
pidfile /var/run/redis-sentinel_26380.pid
logfile
"/usr/local/redis/log/sentinel_26380.log"`
dir /tmp
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig
yes
从配置
redis_6381.conf
bind 0.0.0.0
daemonize
yes 后台守护
port 6381
replica-priority 100 优先级
replicaof 127.0.0.1 6380
----------------sentinel_26381.conf ----------------------
port 26381
daemonize
yes
pidfile /var/run/redis-sentinel-26381.pid
logfile
"/usr/local/redis/log/sentinel_26381.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig
yes
redis_6382.conf
bind 0.0.0.0
daemonize
yes 后台守护
port 6382
replicaof 127.0.0.1 6380
replica-priority 90 优先级
----------------sentinel_26382.conf ----------------------
port 26382
daemonize
yes
pidfile /var/run/redis-sentinel-26382.pid
logfile
"/usr/local/redis/log/sentinel_26381.log"
sentinel monitor mymaster 127.0.0.1 6380 2
sentinel down-after-milliseconds mymaster 30000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig
yes
sentinel monitor mymaster 127.0.0.1 6380 2
告诉sentinel去监听地址为ip:port的一个master,这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效
sentinel down-after-milliseconds mymaster 30000
这个配置项指定了需要多少失效时间,一个master才会被这个sentinel主观地认为是不可用的。 单位是毫秒,默认为30秒
sentinel parallel-syncs mymaster 1
这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步。
这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。
可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。
sentinel failover-timeout mymaster 180000
当进行failover故障转移时,配置所有slaves指向新的master所需的最大时间
sentinel deny-scripts-reconfig
yes
避免脚本重置,默认值yes
配置启动程序
cd /usr/src/redis-5.0.8/src/
cp redis-server /usr/local/redis/
cp redis-sentinel /usr/local/redis/
cp redis-cli /usr/local/redis/
cd /usr/local/redis/
mkdir log
启动多实例
./redis-sentinel redis1/sentinel_26380.conf
&
./redis-sentinel redis2/sentinel_263801.conf
&
./redis-sentinel redis3/sentinel_26382.conf
&
./redis-sentinel redis1/sentinel_26380.conf
&
./redis-sentinel redis2/sentinel_26381.conf
&
./redis-sentinel redis3/sentinel_26382.conf
&
验证
./redis-cli -p 26380 info Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name
=mymaster,status
=ok,address
=127.0.0.1:6380,slaves
=2,sentinels
=3
./redis-cli -p 26381 info Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name
=mymaster,status
=ok,address
=127.0.0.1:6382,slaves
=2,sentinels
=3