下面是开发环境、测试环境,单台服务器搭建redis-sentinel集群
Redis端口:6379、6380、6381
Sentinel端口:16379、16380、16381
直接拿下面的配置文件就可以跑起来。
安装redis4.0
wget http://download.redis.io/releases/redis-4.0.10.tar.gztar xvf redis-4.0.10.tar.gz -C /appcd /app/redis-4.0.10make MALLOC=libccd srcmake install
进入/app/redis-4.0.10,原有的redis.conf、sentinel.conf文件不要动,添加集群所需的文件redis1.conf、redis2.conf、redis3.conf、sentinel1.conf、sentinel2.conf、sentinel3.conf,各个文件配置如下。
redis1.conf
bind 127.0.0.1protected-mode yesport 6379daemonize nosupervised systemdpidfile /var/run/redis_6379.pidloglevel noticelogfile "/app/redis-data/redis-master/redis.log"databases 16#always-show-logo yessave 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir "/app/redis-data/redis-master"#replica-serve-stale-data yes#replica-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay no#replica-priority 100#lazyfree-lazy-eviction no#lazyfree-lazy-expire no#lazyfree-lazy-server-del no#replica-lazy-flush noappendonly noappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yes#aof-use-rdb-preamble yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000#stream-node-max-bytes 4096#stream-node-max-entries 100activerehashing yesclient-output-buffer-limit normal 0 0 0#client-output-buffer-limit replica 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10#dynamic-hz yesaof-rewrite-incremental-fsync yes#rdb-save-incremental-fsync yesmasterauth 123456requirepass 123456
redis2.conf
bind 127.0.0.1protected-mode yesport 6380daemonize yessupervised systemdpidfile /var/run/redis_6380.pidloglevel noticelogfile "/app/redis-data/redis-slave1/redis.log"databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir "/app/redis-data/redis-slave1"repl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noappendonly noappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yesmasterauth 123456requirepass 123456slaveof 127.0.0.1 6379
redis3.conf
bind 127.0.0.1protected-mode yesport 6381daemonize yessupervised systemdpidfile /var/run/redis_6381.pidloglevel noticelogfile "/app/redis-data/redis-slave2/redis.log"databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdbdir "/app/redis-data/redis-slave2"repl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noappendonly noappendfilename "appendonly.aof"appendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yesmasterauth 123456requirepass 123456slaveof 127.0.0.1 6379
下面是sentinel的配置文件
sentinel1.conf
port 16379daemonize yesbind 172.11.26.205logfile "/app/redis-data/redis-master/redis-sentinel.log"sentinel myid 454634552802f3864f3477883933e7aa803e4808sentinel monitor mymaster 172.11.26.205 6379 2sentinel failover-timeout mymaster 10000sentinel auth-pass mymaster Bluesea#redis?123protected-mode yessentinel config-epoch mymaster 0# Generated by CONFIG REWRITEdir "/root"sentinel leader-epoch mymaster 377sentinel known-slave mymaster 172.11.26.205 6381sentinel known-slave mymaster 172.11.26.205 6380sentinel known-sentinel mymaster 172.11.26.205 26381 962a9cf6afa20726baf3d97d326ce87d0469c4aesentinel known-sentinel mymaster 172.11.26.205 26380 1e48ed185e5e514510029c6dad49320b793d41b6sentinel current-epoch 377
sentinel2.conf
port 16380daemonize yesbind 172.11.26.205logfile "/app/redis-data/redis-slave1/redis-sentinel.log"sentinel myid 1e48ed185e5e514510029c6dad49320b793d41b6sentinel monitor mymaster 172.11.26.205 6379 2sentinel failover-timeout mymaster 10000protected-mode yessentinel auth-pass mymaster Bluesea#redis?123# Generated by CONFIG REWRITEdir "/root"sentinel config-epoch mymaster 0sentinel leader-epoch mymaster 381sentinel known-slave mymaster 172.11.26.205 6381sentinel known-slave mymaster 172.11.26.205 6380sentinel known-sentinel mymaster 172.11.26.205 26381 962a9cf6afa20726baf3d97d326ce87d0469c4aesentinel known-sentinel mymaster 172.11.26.205 26379 454634552802f3864f3477883933e7aa803e4808sentinel current-epoch 381
sentinel3.conf
port 16381daemonize yesbind 172.11.26.205logfile "/app/redis-data/redis-slave2/redis-sentinel.log"sentinel myid 962a9cf6afa20726baf3d97d326ce87d0469c4aesentinel monitor mymaster 172.11.26.205 6379 2sentinel failover-timeout mymaster 10000protected-mode yessentinel auth-pass mymaster Bluesea#redis?123# Generated by CONFIG REWRITEdir "/root"sentinel config-epoch mymaster 0sentinel leader-epoch mymaster 383sentinel known-slave mymaster 172.11.26.205 6380sentinel known-slave mymaster 172.11.26.205 6381sentinel known-sentinel mymaster 172.11.26.205 26379 454634552802f3864f3477883933e7aa803e4808sentinel known-sentinel mymaster 172.11.26.205 26380 1e48ed185e5e514510029c6dad49320b793d41b6sentinel current-epoch 383
redis启动脚本—-redis.sh
#!/bin/bashnohup /app/redis-4.0.10/src/redis-server /app/redis-4.0.10/redis1.conf >output 2>&1 &nohup /app/redis-4.0.10/src/redis-server /app/redis-4.0.10/redis2.conf >output 2>&1 &nohup /app/redis-4.0.10/src/redis-server /app/redis-4.0.10/redis3.conf >output 2>&1 &
sentinel启动脚本—-sentinel.sh
#!/bin/bashnohup /app/redis-4.0.10/src/redis-sentinel /app/redis-4.0.10/sentinel1.conf > output 2>&1 &nohup /app/redis-4.0.10/src/redis-sentinel /app/redis-4.0.10/sentinel2.conf > output 2>&1 &nohup /app/redis-4.0.10/src/redis-sentinel /app/redis-4.0.10/sentinel3.conf > output 2>&1 &
