1. 程式人生 > 資料庫 >Redis主從複製的配置

Redis主從複製的配置

複製\修改主從節點的配置:

剛安裝好之後bin目錄下沒有redis.conf檔案,從安裝檔案的src目錄中複製到安裝目錄

sudo cp redis-4.0.9/redis.conf redis/bin/

這裡就使用redis.conf作為主節點的配置,複製一份作為從節點的配置檔案:

cp redis.conf redis_6380.conf

主節點配置

vim redis.conf

port 6379
daemonize  yes
requirepass 123456
pidfile /var/run/redis_6379.pid
logfile "/usr/local/data/redislog.log"

從節點配置

和主節點一樣,再加入masterauth(如果主節點配置了requirepass,那麼從節點就必須配置) 、 slaveof  。

vim redis_6380.conf

port 6380
daemonize  yes
requirepass 123456

# masterauth <master-password>
masterauth 123456

# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
pidfile /var/run/redis_6379.pid
logfile "/usr/local/data/redislog.log"

或者 啟動redis-server之後,直接輸入--slaveof<masterHost><masterPort> 命令完成配置 : slaveof 127.0.0.1 6379

使用配置檔案分別啟動主從節點

./redis-server redis.conf 

./redis-server redis_6380.conf 

啟動cli 

因為配置了requirepass 。 所以要輸入密碼 -a password

./redis-cli -p 6379 -a 123456

./redis-cli -p 6380 -a 123456

檢視配置是否正確

127.0.0.1:6379> info Replication 

看這幾個地方是否正確:connected_salve的數字就是已經連線的從節點的數量,如果從節點都已經啟動,還是顯示0 , 需要關閉防火牆  systemctl stop firewalld  

 

 

 

 

 再檢視從節點:

127.0.0.1:6380> info replication

 

 檢視是否正常複製

 

 

 

 發現主從庫已經連線,但是從庫無法讀取到主庫設定的值。 到配置檔案中日誌的路徑中檢視日誌:

 

 Opening the temp file needed for MASTER <-> SLAVE synchronization: Permission denied

從庫沒有許可權開啟臨時檔案,使用root許可權啟動redis從庫、或者改redis安裝目錄為啟動使用者可寫

 

 sudo -u root ./redis-server redis_6380.conf 

 

修改後,成功複製: