4、主从配置及测试
主 | php1 | 172.17.16.7 | 6379 |
从 | MySQL1 | 172.17.16.21 | 6379 |
从 | mysql3 | 172.17.16.22 | 6379 |
#从服务器上
vim /etc/redis.conf
#做如下修改,其他配置保持默认即可
slaveof 172.17.16.7 6379
masterauth redispass
requirepass redispass
#主服务器上
vim /etc/redis.conf
#做如下修改,其他配置保持默认即可
masterauth redispass
requirepass redispass
#启动主、从
#主16.7
#redis-server /etc/redis.conf &
#从16.21、16.22
#redis-server /etc/redis.conf &
#主服务器显示
[13997] 03 Nov 09:57:21.045 * Slave ask for synchronization
[13997] 03 Nov 09:57:21.045 * Starting BGSAVE for SYNC
[13997] 03 Nov 09:57:21.046 * Background saving started by pid 14002
[14002] 03 Nov 09:57:21.058 * DB saved on disk
[14002] 03 Nov 09:57:21.059 * RDB: 0 MB of memory used by copy-on-write
[13997] 03 Nov 09:57:21.070 * Background saving terminated with success
[13997] 03 Nov 09:57:21.070 * Synchronization with slave succeeded
#从服务器显示
[3496] 03 Nov 09:56:41.953 * Connecting to MASTER...
[3496] 03 Nov 09:56:41.953 * MASTER <-> SLAVE sync started
[3496] 03 Nov 09:56:41.954 * Non blocking connect for SYNC fired the event.
[3496] 03 Nov 09:56:41.954 * Master replied to PING, replication can continue...
[3496] 03 Nov 09:56:42.055 * MASTER <-> SLAVE sync: receiving 18 bytes from master
[3496] 03 Nov 09:56:42.055 * MASTER <-> SLAVE sync: Loading DB in memory
[3496] 03 Nov 09:56:42.055 * MASTER <-> SLAVE sync: Finished with success
[3499] 03 Nov 09:56:42.056 * SYNC append only file rewrite performed
[3499] 03 Nov 09:56:42.057 * AOF rewrite: 0 MB of memory used by copy-on-write
[3496] 03 Nov 09:56:42.057 * Background append only file rewriting started by pid 3499
[3496] 03 Nov 09:56:42.154 * Background AOF rewrite terminated with success
[3496] 03 Nov 09:56:42.154 * Parent diff successfully flushed to the rewritten AOF (0 bytes)
[3496] 03 Nov 09:56:42.154 * Background AOF rewrite finished successfully
#主服务器查看主从信息
#[root@php1 ~]# redis-cli -h 127.0.0.1 -a redispass info replication
# Replication
role:master
connected_slaves:2
slave0:172.17.16.21,6379,online
slave1:172.17.16.22,6379,online
#从服务器查看主从信息
#[root@mysql1 ~]# redis-cli -h 127.0.0.1 -a redispass info replication
# Replication
role:slave
master_host:172.17.16.7
master_port:6379
master_link_status:up
master_last_io_seconds_ago:2
master_sync_in_progress:0
slave_priority:100
slave_read_only:1
connected_slaves:0
#写同步测试
#主服务器
[root@php1 ~]# redis-cli -h 127.0.0.1 -a redispass
redis 127.0.0.1:6379> set a 123
OK
redis 127.0.0.1:6379> get a
"123"
#从服务器
[root@mysql1 ~]# redis-cli -h 127.0.0.1 -a redispass
redis 127.0.0.1:6379> get a
"123"
[root@mysql3 ~]# redis-cli -h 127.0.0.1 -a redispass
redis 127.0.0.1:6379> get a
"123"
redis 127.0.0.1:6379> set b 234
(error) READONLY You can't write against a read only slave. (开起了只读模式,所以从将不能写入数据,可以保证数据只从主服务器同步至从服务器)
#故障测试
#从服务器宕机
将自动从主服务器的主从关系中解除
#主服务器宕机,从服务器显示,并且不能自动切换
[15932] 03 Nov 09:46:25.465 * Connecting to MASTER...
[15932] 03 Nov 09:46:25.465 * MASTER <-> SLAVE sync started
[15932] 03 Nov 09:46:25.466 # Error condition on socket for SYNC: Connection refused