Linux安裝redis並搭建主從,哨兵

下載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

通過查看哨兵的日誌,我們也可以看到主服務器也已經變更了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章