1.安裝Redis主從系統(tǒng):
從官網(wǎng)下載redis-3.2.9,并且安裝。
1.1 安裝redis
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar xzf redis-3.2.9.tar.gz
$ cd redis-3.2.9
$ make && make install
1.2 配置master上的redis.conf
bind 192.168.10.10
port 6379
daemonize yes //啟動(dòng)redis后臺(tái)運(yùn)行
masterauth 123456 //master的密碼,如果redis設(shè)置了密碼,主從密碼要設(shè)置成一樣的。
requirepass 123456
logfile "/var/log/redis/redis.log"
1.3 配置slave上的redis.conf。
bind 192.168.10.11
port 6379
daemonize yes //啟動(dòng)redis后臺(tái)運(yùn)行
slave 192.168.10.10 6379
masterauth 123456 //master的密碼,如果redis設(shè)置了密碼,主從密碼要設(shè)置成一樣的。
requirepass 123456
logfile "/var/log/redis/redis.log"
2.測(cè)試主從是否同步。
在mster上創(chuàng)建:
redis-cli -h 192.168.10.10 -p 6379 -a 123456
192.168.10.10:6379>set name abc
OK
192.168.10.10:6379>get name
"abc"
在slave上查看
redis-cli -h 192.168.10.11 -p 6379 -a 123456
192.168.10.11:6379>get name
"abc"
- 從庫默認(rèn)是只讀權(quán)限,無法寫入數(shù)據(jù)
可以查看即為主從配置成功。
3.主從切換
當(dāng)master出現(xiàn)故障或者宕機(jī)的時(shí)候,需要手動(dòng)將slave提升為master。
3.1 停止master
redis-cli -h 192.168.10.10 -p 6379 -a 123456 shutdown
3.2 將slave 設(shè)置成master
redis-cli -h 192.168.10.11 -p 6379 -a 123456
192.168.10.11:6379>slaveof NO ONE
OK
驗(yàn)證寫權(quán)限
192.168.10.11:6379>set name aaa
OK
192.168.10.11:6379>get name
"aaa"
4.如果原來的master恢復(fù)正常,要重新切回去。
4.1 將現(xiàn)在主redis上的數(shù)據(jù)保存
查看
192.168.10.11:6379> get name
"aaa"
192.168.10.11:6379> save
OK
4.2 將現(xiàn)在主redis根目錄中的dump.rdb文件拷貝覆蓋到原來master的根目錄。
4.3 啟動(dòng)原來的主redis
$ src/redis-server redis.conf
src/redis-cli -h 192.168.10.10 -p 6379 -a 123456
192.168.10.10:6379> slaveof NO ONE
OK
4.4 將當(dāng)前主redis中切換
src/redis-cli -h 192.168.10.11 -p 6379 -a 123456 slaveof 192.168.10.10 6379
5.總結(jié)
- redis的單主從模式不推薦使用,當(dāng)master出現(xiàn)問題的時(shí)候,切換slave太過麻煩,并且耗時(shí)太長,容易造成數(shù)據(jù)丟失。
參考地址
https://redis.io/
http://blog.csdn.net/zfl092005/article/details/17523945