Redis主從配置
一、redis安裝
$ wget http://download.redis.io/releases/redis-2.8.17.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make
二、redis啟動
$cd redis-2.8.17
$src/redis-server ./redis.conf #啟動redis
或者
$src/redis-server ./redis.conf & #后臺啟動
三、主從配置
1、拷貝 redis-2.8.17文件夾
$cp -r redis-2.8.17 ./redis-slave
2、設(shè)定兩個文件夾目錄為redis-master和redis-slave
3、配置redis-master
daemonize yes #是否以后臺進程運行,默認(rèn)為no
requirepass master-password #連接密碼
pidfile /var/run/redis.pid #如以后臺進程運行,則需指定一個pid,默認(rèn)為/var/run/redis.pid
port 6379 #主服務(wù)器端口,默認(rèn)值
dbfilename dumpmaster.rdb #本地數(shù)據(jù)庫文件名,默認(rèn)值為dump.rdb
dir ./ #本地數(shù)據(jù)庫存放路徑,默認(rèn)值為 ./
4、配置redis-slave
daemonize yes
requirepass slave-password
pidfile /var/run/redis.pid
slaveof 127.0.0.1 6379 #當(dāng)本機為從服務(wù)時,設(shè)置主服務(wù)的IP及端口
masterauth master-password #當(dāng)本機為從服務(wù)時,設(shè)置主服務(wù)的連接密碼
port 7000 #設(shè)定從服務(wù)器端口
dbfilename dumpslave.rdb
dir ./
5、分別啟動主從服務(wù)
$cd redis-master
$src/redis-server ./redis.conf
$cd redis-slave
$src/redis-server ./redis.conf
6、分別連接兩個redis server在主數(shù)據(jù)庫中添加刪除key,查看slave數(shù)據(jù)庫中是否做了相應(yīng)的修改
7、將從數(shù)據(jù)庫數(shù)據(jù)恢復(fù)到主數(shù)據(jù)庫
假設(shè)redis-master和redis-slave在同一臺服務(wù)器同一個目錄下
$redis-cli #查看主服務(wù)器是否能連上
$auth master-password #登入
$shutdown #關(guān)掉服務(wù)
$cd redis-master
$mv dump.rdb dump_bak.rdb #備份主數(shù)據(jù)庫
$cp ../redis-slave/dumpslave.rdb ./dumpmaster.rdb
$src/redis-server ./redis.conf #重啟master服務(wù)
注意:
當(dāng)主數(shù)據(jù)庫掛掉后,請不要再啟動主服務(wù)器,應(yīng)該將從服務(wù)器的數(shù)據(jù)恢復(fù)到master數(shù)據(jù)庫后再啟動。
因為主服務(wù)器掛掉后,比如數(shù)據(jù)都沒有了,如果立即啟動,那么從服務(wù)器的數(shù)據(jù)將被清空,
做的主從關(guān)系備份沒有意義了。