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