redis的主從複製(讀寫分離)/哨兵(主從切換)配置
當資料量變得龐大的時候,讀寫分離還是很有必要的。同時避免一個redis服務宕機,導致應用宕機的情況,我們啟用sentinel(哨兵)服務,實現主從切換的功能。redis提供了一個master,多個slave的服務。
準備三個redis服務,依次命名資料夾子master,slave1,slave2.這裡為在測試機上,不干擾原來的redis服務,我們master使用6000埠。
配置檔案(redis.conf):
master配置修改埠:
port 6000 requirepass 123456
slave1修改配置:
1 2 3 4 5 6 7 |
port
6001
slaveof
127.0.0.1 6000
masterauth
123456
requirepass
123456
|
slave2修改配置:
1 2 3 4 5 6 7 |
port
6002
slaveof
127.0.0.1 6000
masterauth
123456
requirepass
123456
|
requirepass:是認證密碼,應該之後要作主從切換,所以建議所有的密碼都一致。masterauth是從機對主機驗證時,所需的密碼(即主機的requirepass)。
啟動主機:
1 |
redis-server
redis.conf
|
啟動從機:
redis-server redis1.conf
redis-server redis2.conf
產看啟動程序,輸入:
ps -ef |grep redis
root 6617 1 0 18:34 ? 00:00:01 redis-server *:6000 root 6647 1 0 18:43 ? 00:00:00 redis-server *:6001root 6653 1 0 18:43 ? 00:00:00 redis-server *:6002 root 6658 6570 0 18:43 pts/0 00:00:00 grep redis
可以看到主,從機的redis已經相應啟動。
我們來驗證下主從複製:
master:
1 2 3 4 5 |
[[email protected]
master] #
redis-cli -p 6000
127.0.0.1:6000>
auth 123456
OK
127.0.0.1:6000> set test chenqm
OK
|
slave1:
1 2 3 4 5 |
[[email protected]
slave2] #
redis-cli -p 6001
127.0.0.1:6001>
auth 123456
OK
127.0.0.1:6001>
get test
"chenqm"
|
slave2: