前一篇文章講解了redis的偽分佈式的環境搭建,為了應各位朋友的要求寫一篇真分佈式環境的搭建以及手動切換的操作。下面內容只是講解分佈式環境下redis的配置的注意事項,過程比較簡單,暫時還未使用到sentinel來實現自動主從切換的高可用配置,關於sentinel的配置後續也會有相應的文章推出。
在實際公司的生產環境上如果要使用redis,一般也不會直接操作redis,而是採用開源的redis集群架構,例如codis,redis cluster,twemproxy來實現分佈式集群的管理,結合所在公司的項目我們選用的是codis,後續也會介紹codis的詳情、部署以及運維等,敬請期待!
一、環境概述
192.168.28.154為主,啟動一個redis實例,端口號為8381
192.168.16.234為從,啟動一個redis實例,端口號為8381
二、配置文件
1、master
8381.conf的內容如下:
daemonize yes
port 8381
logfile /soft/redis/logs/8381.log
dbfilename 8381.rdb
dir /soft/redis/dumps/
2、slave
slave的配置文件、日誌文件、持久化文件路徑與master一樣
8381.conf的內容如下:
daemonize yes
port 8381
logfile /soft/redis/logs/8381.log
dbfilename 8381.rdb
dir /soft/redis/dumps/
slaveof 192.168.28.154 8381
其中從的配置文件中需要加上:slaveof 192.168.28.154 8381
三、啟動測試
啟動slave:redis-server 8381.conf
啟動master:redis-server 8381.conf
從這裡可以看出已經連接到slave了,並進行了一次同步
1、使用redis-cli連接master
2、在master機器上使用redis-cli來連接slave
1)、在slave上使用命令“CONFIG SET protected-mode no”
2)、修改slave的配置文件,增加"protected-mode no"3)、在slave的配置文件中增加ip地址的綁定,或者增加權限密碼,只允許指定ip的客戶端訪問
下面我的使用第二種方式來修改slave的配置文件,為了一勞永易我們把master的配置文件也修改了。注:這是生產環境下最常用的配置方式增加protected-mode no如下:
然後再到master通過redis-cli來訪問slave,使用get a發現有結果返回至此為止主從配置完成。
四、主從手動切換
1、在slave上修改role的狀態為master:
發現已經改為master了
2、在master上修改role為slave:slaveof 192.168.16.234 8381
查看狀態:
至此修改完成,主要是對slaveof命令的使用,詳細的切換過程大家可以看前一篇文章。