1. 程式人生 > >淺入淺出之redis主從配置及手動切換

淺入淺出之redis主從配置及手動切換

環境描述:
主redis:192.168.10.1 6379
從redis:192.168.10.2 6380

一、主從配置

1、將主從redis配置檔案redis.conf中的aemonize no 改為 yes

2、修改從redis配置檔案redis.conf中的port 6379 改為 6380,新增slaveof 192.168.10.1 6379 

3、啟動主從服務

      主redis:      

      [[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf

     從redis:

     [[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-slave/redis-2.8.3/redis.conf

4、測試資料同步

      主redis:

      [[email protected] redis-2.8.3]# src/redis-cli -p 6379
     127.0.0.1:6379> set name abc
     OK
     127.0.0.1:6379> get name
     "abc"
     127.0.0.1:6379>

    從redis:

      [[email protected] redis-2.8.3]# src/redis-cli -p 6380
     127.0.0.1:6380> get name
     "abc"
     127.0.0.1:6380>

5、預設是讀寫分離的

     在從redis:

     [[email protected] redis-2.8.3]# src/redis-cli -p 6380
     127.0.0.1:6380> set name 123
     (error) READONLY You can't write against a read only slave.


 二、主從切換

     1、停止主redis

     [[email protected] redis-2.8.3]# src/redis-cli -n 6379 shutdown
     [[email protected] 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
     [[email protected] redis-2.8.3]# src/redis-cli -p 6380 slaveof NO ONE
     OK

    3、測試從redis是否切換從主redis

     [[email protected] 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)將現在的主redis的資料進行儲存

     [[email protected] 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)將現在的主redis根目錄下dump.rdb檔案拷貝覆蓋到原來主redis的根目錄

       3)啟動原來的主redis

      [[email protected] redis-2.8.3]# src/redis-server /soft/redis-2.8.3-master/redis-2.8.3/redis.conf
       4)在現在的主redis中切換

      [[email protected] redis-2.8.3]# src/redis-cli -p 6380 slaveof 192.168.10.1 6379
      OK