下載redis
選擇你想要存放的目錄,然後 下載 解壓
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
tar -zxf redis-4.0.6.tar.gz
解壓完成後進入解壓好的目錄
然後執行 make 對解壓的Redis文件進行編譯
執行完成後進入src目錄
執行
make install PREFIX=/usr/mpsp/redis/redis-4.0.6
PREFIX 後面是安裝路徑
執行成功後就會多出一個bin的目錄
這樣 我們的redis 就已經安裝好了
主從+哨兵
由於我比較窮,只有一臺服務器,所以,就只在一臺服務器上面同時部署了
首先,複製三個出來,然後原本的就先放在哪裏,留作備用
cp -r redis-4.0.6 redis-4.0.6-master
cp -r redis-4.0.6 redis-4.0.6-Slave-1
cp -r redis-4.0.6 redis-4.0.6-Slave-2
然後是配置
主redis的配置
redis.conf
#後臺啓動
daemonize yes
pidfile "/usr/mpsp/data/redis/6379/redisRun/redis_6379.pid"
port 6379
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/usr/mpsp/data/redis/6379/redislog/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/usr/mpsp/data/redis/6379/redisdb"
#如果做故障切換,不論主從節點都要填寫密碼且要保持一致
masterauth "123456"
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98
#當前redis密碼
requirepass "123456"
appendonly yes
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
然後是從redis的配置
daemonize yes
pidfile "/use/mpsp/data/redis/7000/redisRun/redis_7000.pid"
port 7000
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/use/mpsp/data/redis/7000/redislog/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/use/mpsp/data/redis/7000/redisdb"
#主節點密碼
masterauth "123456"
slave-serve-stale-data yes
slave-read-only yes
repl-disable-tcp-nodelay no
slave-priority 98
requirepass "123456"
appendonly yes
# appendfsync always
appendfsync everysec
# appendfsync no
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
# Generated by CONFIG REWRITE
#配置主節點信息
slaveof 10.10.56.161 6379
Slave-redis的配置我們需要注意修改的幾個點:端口、文件路徑、主節點信息,這三點必須要注意修改
同時, pidfile logfile dir 這三個配置的文件夾,必須啓動前提前創建!!!
接下來是哨兵的配置
sentinel.conf
port 26379
#1表示在sentinel集羣中只要有兩個節點檢測到redis主節點出故障就進行切換,單sentinel節點無效(自己測試發現的)
#如果3s內mymaster無響應,則認爲mymaster宕機了
#如果10秒後,mysater仍沒活過來,則啓動failover
sentinel monitor mymaster 10.10.56.161 6379 1
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 10000
daemonize yes
#指定工作目錄
dir "/use/mpsp/data/redis/26379/sentinel-work"
protected-mode no
logfile "/use/mpsp/data/26379/sentinellog/sentinel.log"
#redis主節點密碼
sentinel auth-pass mymaster 123456
# Generated by CONFIG REWRITE
這裏需要注意的就是 端口號 文件夾路徑,不能重複,且文件夾路徑需要啓動前提前創建
配置修改完畢,接下來就是啓動了
進入我們redis的安裝路徑
執行
./bin/redis-server redis.conf
這就是啓動我們的redis了,由於我們設置的後臺啓動,所以我們通過查看日誌來判斷是否啓動成功
日誌路徑是我們配置文件中的 logfile 文件夾
三個redis依次啓動
也可以通過 ps -ef|grep redis 判斷是否啓動
哨兵的啓動通過執行
./bin/redis-sentinel sentinel.conf
日誌路徑也是 logfile
也可以通過 ps -ef|grep redis 判斷是否啓動
通過查看哨兵的日誌我們可以看到主redis的情況
同時我們訪問主redis的哨兵可以看到從redis的節點情況
這樣 我們的主從+哨兵就已經搭建好了
測試
雖然已經搭建好了 但是畢竟我們要試一下是不哨兵已經起到作用了呢
執行
./bin/redis-cli
然後驗證密碼
auth 123456
最後執行
shutdown
通過ps,也可以看到少了一個redis
通過查看哨兵的日誌,我們也可以看到主服務器也已經變更了