Redis主从持久化测试
生活随笔
收集整理的這篇文章主要介紹了
Redis主从持久化测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1:redis主從環境,均未開啟持久化;
當主實例宕機,從實例上的數據不受影響;
當主恢復后,主實例上的數據將會繼續同步到從實例,即原來的值將變為空值;
2:redis主從環境,從實例開啟快照持久化
當主實例宕機,從實例上的數據不受影響;
當主恢復后,主實例上的數據將會繼續同步到從實例,即原來的值將變為空值;
3:推進一層,當主,從實例均宕機的情況下會如何呢?
當主實例宕機,從實例上的數據不受影響;
當主恢復后,主實例上的數據將會繼續同步到從實例,即原來的值將變為空值;
| [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 info |grep -A 3 'Replication' # Replication role:master connected_slaves:1 slave0:192.168.1.113,6379,online [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 redis 192.168.1.112:6379> set 1 a OK redis 192.168.1.112:6379> get 1 "a" [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 shutdown [root@server12 ~]# tail -f /var/log/messages Dec? 3 15:27:34 server12 redis[32151]: Connecting to MASTER... Dec? 3 15:27:34 server12 redis[32151]: MASTER <-> SLAVE sync started Dec? 3 15:27:34 server12 redis[32151]: Error condition on socket for SYNC: Connection refused [root@server12 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123 redis 192.168.1.113:6379> get 1 "a" [root@server11 ~]# /usr/local/redis2/bin/redis-server /usr/local/redis2/etc/redis.conf [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 redis 192.168.1.112:6379> get 1 (nil) redis 192.168.1.112:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123 redis 192.168.1.113:6379> get 1 (nil) |
當主實例宕機,從實例上的數據不受影響;
當主恢復后,主實例上的數據將會繼續同步到從實例,即原來的值將變為空值;
| ?[root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? redis 192.168.1.112:6379> get 1 (nil) redis 192.168.1.112:6379> set 1 a OK redis 192.168.1.112:6379> set 2 b OK redis 192.168.1.112:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 shutdown [root@server12 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 1 "a" redis 192.168.1.113:6379> get 2 "b" redis 192.168.1.113:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? redis 192.168.1.112:6379> get 1 (nil) redis 192.168.1.112:6379> get 2 (nil) redis 192.168.1.112:6379> exit [root@server12 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 1 (nil) redis 192.168.1.113:6379> get 2 (nil) redis 192.168.1.113:6379> exit |
| [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? redis 192.168.1.112:6379> set 1 a OK redis 192.168.1.112:6379> set 2 b OK redis 192.168.1.112:6379> set 3 c OK redis 192.168.1.112:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 1 "a" redis 192.168.1.113:6379> get 2 "b" redis 192.168.1.113:6379> get 3 "c" redis 192.168.1.113:6379> exit 這次先關閉從實例,再關閉主實例!啟動則先啟動從實例,測試數據;再啟動主實例,再測試數據! [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 shutdown [root@server12 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123 shutdown [root@server12 ~]# /usr/local/redis2/bin/redis-server /usr/local/redis2/etc/redis.conf [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 1 "a" redis 192.168.1.113:6379> get 2 "b" redis 192.168.1.113:6379> get 3 "c" [root@server11 ~]# /usr/local/redis2/bin/redis-server /usr/local/redis2/etc/redis.conf [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? redis 192.168.1.112:6379> get 1 (nil) redis 192.168.1.112:6379> get 2 (nil) redis 192.168.1.112:6379> get 3 (nil) redis 192.168.1.112:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 1 (nil) redis 192.168.1.113:6379> get 2 (nil) redis 192.168.1.113:6379> get 3 (nil) redis 192.168.1.113:6379> exit |
實踐證明,在redis主從讀寫分離條件下,快照持久化只有開在主實例側才可以保證數據可以跨越實例重啟!
| [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? redis 192.168.1.112:6379> set 1 a OK redis 192.168.1.112:6379> set 2 b OK redis 192.168.1.112:6379> set 3 c OK redis 192.168.1.112:6379> set 4 d OK redis 192.168.1.112:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? redis 192.168.1.113:6379> get 4 "d" redis 192.168.1.113:6379> exit [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123 shutdown [root@server12 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123 shutdown [root@server11 ~]# /usr/local/redis2/bin/redis-server /usr/local/redis2/etc/redis.conf [root@server12 ~]# /usr/local/redis2/bin/redis-server /usr/local/redis2/etc/redis.conf [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.112 -a 123? get 4 "d" [root@server11 ~]# /usr/local/redis2/bin/redis-cli -h 192.168.1.113 -a 123? get 4 "d" |
總結
以上是生活随笔為你收集整理的Redis主从持久化测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse 安装配置总结(WST W
- 下一篇: 数据库(杂)