127.0.0.1 6379 主
127.0.0.1 6380 從
127.0.0.1 6381 從
1、在redis目錄下建立conf文件夾,存主從的redis.conf配置文件
建立三個文件:redis_6379.conf、redis_6380.conf、redis_6381.conf
2、在redis目錄下建立dump文件夾,存本地數(shù)據(jù)庫文件
redis啟動的時候會自動生成這六個文件(前提是開啟rdb和aof文件持久化):appendonly_6379.aof、appendonly_6380.aof、appendonly_6381.aof、redis_6379.rdb、redis_6380.rdb、redis_6381.rdb
3、主redis_6379.conf文件內(nèi)容:
daemonize yes
pidfile /var/run/redis_6379.pid
port 6379
tcp-keepalive 0
loglevel notice
logfile /usr/soft/redis/logs/redis_6379.log
save 900 1
save 300 10
save 60 10000
dbfilename redis_6379.rdb
dir /usr/soft/redis/dump/
appendonly yes
appendfilename 'appendonly_6379.aof'
# appendfsync always
appendfsync everysec
# appendfsync no
4、從redis_6380.conf配置文件內(nèi)容:
daemonize yes
pidfile /var/run/redis_6380.pid
port 6380
tcp-keepalive 0
loglevel notice
logfile /usr/soft/redis/logs/redis_6380.log
save 900 1
save 300 10
save 60 10000
# The filename where to dump the DB
dbfilename redis_6380.rdb
dir /usr/soft/redis/dump/
slaveof 127.0.0.1 6379
slave-read-only no
appendonly yes
appendfilename 'appendonly_6380.aof'
# appendfsync always
appendfsync everysec
# appendfsync no
從6381的配置與從6380一樣,唯一需要注意的是修改端口、路徑、備份文件名等。
四、啟動redis
1、啟動主redis:redis-server ./redis_6379.conf。在conf目錄下執(zhí)行,如果在其它目錄下運行,需要指定redis_6379.conf的詳細路徑
2、啟動從redis:redis-server ./redis_6380.conf。
2、啟動從redis:redis-server ./redis_6381.conf。
啟動完后redis服務會在后臺運行
五、查看是否正常啟動
執(zhí)行:ps -ef|grep redis
六、測試主從是否配置正確
因為我們配置的在主redis中添加,會自動同步到從的redis庫中,但是在從庫執(zhí)行添加數(shù)據(jù)確不會被同步到主庫中。
在主庫中添加set a a
在從庫中查看發(fā)現(xiàn)key為a的數(shù)據(jù)已經(jīng)同步過來了。
七、主從切換
1、停止主redis
[root@localhost redis-2.8.3]# src/redis-cli -n 6379 shutdown
[root@localhost redis-2.8.3]# src/redis-cli -p 6379
Could not connect to Redis at 127.0.0.1:6379: Connection refused
not connected>
2、將從redis設成主redis
[root@localhost redis-2.8.3]# src/redis-cli -p 6380 slaveof NO ONE
OK
3、測試從redis是否切換成主redis
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
'123'
127.0.0.1:6380>
4、原來的主redis恢復正常了,要重新切換回去
1)將現(xiàn)在的主redis的數(shù)據(jù)進行保存
[root@localhost redis-2.8.3]# src/redis-cli -p 6380
127.0.0.1:6380> get name
'abc'
127.0.0.1:6380> set name 123
OK
127.0.0.1:6380> get name
'123'
127.0.0.1:6380> save
OK
127.0.0.1:6380> get name
'123'
127.0.0.1:6380>
2)將現(xiàn)在的主redis根目錄下dump.rdb文件拷貝覆蓋到原來主redis的根目錄
3)啟動原來的主redis
[root@localhost redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf
4)在現(xiàn)在的主redis中切換
[root@localhost redis-2.8.3]# src/redis-cli -p 6380 slaveof 192.168.10.1 6379
OK