1. redis的主從配置:
(1)把redis的配置文件(reids.conf)拷貝2份
[root@192 redis]# cp redis.conf redis6380.conf
[root@192 redis]# cp redis.conf redis6381.conf
(殺掉redis進程)
(2)配置從服務器redis6380.conf
[root@192 redis]# vi redis6380.conf #需要修改的內容如下:
#pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6380.pid
#port 6379
port 6380
#dbfilename dump.rdb
dbfilename dump6380.rdb
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
slave-read-only yes
(3)配置從服務器redis6381.conf
[root@192 redis]# vi redis6381.conf #需要修改的內容如下:
#pidfile /var/run/redis_6379.pid
pidfile /var/run/redis_6381.pid
#port 6379
port 6381
#save 900 1 #全部注釋掉,不產生rdb文件,2台從服務器,1台產生rdb即可
#save 300 10
#save 60 10000
appendonly no #也不讓它產生aof
# slaveof <masterip> <masterport>
slaveof 127.0.0.1 6379
slave-read-only yes #只讀
(4)配置主服務器redis.conf
[root@192 redis]# vi redis.conf
#save 900 1 #禁用rdb,因為有從服務器生成了
#save 300 10
#save 60 10000
#appendonly no
appendonly yes #aof的配置文件可要可不要
appendfilename "appendonly.aof"
(5)啟動主、從服務器:
[root@192 redis]# pwd
/usr/local/redis
[root@192 redis]# ./bin/redis-server ./redis.conf #啟動主服務器
[root@192 redis]# ./bin/redis-server ./redis6380.conf #啟動從服務器
[root@192 redis]# ./bin/redis-server ./redis6381.conf #啟動從服務器
(6)客戶端連接主服務器:
[root@192 redis]# ./bin/redis-cli
127.0.0.1:6379>
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2 #連接的從服務器的個數
slave0:ip=127.0.0.1,port=6380,state=online,offset=392,lag=0
slave1:ip=127.0.0.1,port=6381,state=online,offset=392,lag=1
127.0.0.1:6379> set animal cat #主服務器設置值,從服務器可讀取值
OK
(7)客戶端連接從服務器:
---slave1
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli -p 6380
127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up #up連接正常,down連接失敗
---slave2
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli -p 6381
127.0.0.1:6381> info replication #查看從服務器的連接狀態
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up #up連接正常,down連接失敗
注:
從服務器可以不通過密碼連接主從服務器,不安全,如果想用密碼也是可以的:
加上密碼:(主、從服務器配置文件都需要加上密碼)
(1)殺掉所有的redis進程:
[root@192 redis]# pkill -9 redis
(2)主服務器加密碼:
[root@192 redis]# vi redis.conf #修改主服務器內容如下:
# requirepass foobared
requirepass passwd
(1)從服務器加密碼:(2個從服務器都要修改如下內容:)
[root@192 redis]# vi redis6380.conf
# masterauth <master-password>
masterauth passwd
[root@192 redis]# vi redis6381.conf
# masterauth <master-password>
masterauth passwd
(4)此時啟動redis主、從服務端,客戶端連接redis需要輸入密碼,如下:
[root@192 ~]# cd /usr/local/redis/
[root@192 redis]# ./bin/redis-cli
127.0.0.1:6379> set age 21
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth passwd
OK
127.0.0.1:6379> set age 21
OK