Redis 主從配置

來源:互聯網
上載者:User

標籤:

一、redis主從複製特點:

1.master可以擁有多個slave

2.多個slave可以串連同一個master外,還可以串連到其他slave

3.主從複製不會阻塞master,在同步資料時,master可以繼續處理client請求

4.提高系統的伸縮性

5.可以在master禁用資料持久化,注釋掉master設定檔中的所有save配置,只需在slave上配置資料持久化

 

二、redis主從複製過程:

當配置好slave後,slave與master建立串連,然後發送sync命令。無論是第一次串連還是重新串連,master都會啟動一個後台進 程,將資料庫快照集儲存到檔案中,同時master主進程會開始收集新的寫命令並緩衝。後台進程完成寫檔案後,master就傳送檔案給 slave,slave將檔案儲存到硬碟上,再載入到記憶體中,接著master就會把緩衝的命令轉寄給slave,後續master將收到的寫命令發送給 slave。如果master同時收到多個slave發來的同步串連命令,master只會啟動一個進程來寫資料庫鏡像,然後發送給所有的slave。

 

三、redis主從配置過程

    1). 同時啟動兩個Redis伺服器,可以考慮在同一台機器上啟動兩個Redis伺服器,分別監聽不同的連接埠,如6379和6380。啟動./redis-server local_6379.conf &./redis-server local_6380.conf &     2). 在Slave伺服器上執行一下命令:
     /> redis-cli -p 6380 
    redis 127.0.0.1:6380>  slaveof 127.0.0.1 6379
    OK    redis 127.0.0.1:6380> config set masterauth redis  #假設Master的密碼為redis
    OK    當然Master設定密碼為config set requirepass redis
    上面的方式只是保證了在執行slaveof命令之後,redis_6380成為了redis_6379的slave,一旦服務(redis_6380)重新啟動之後,他們之間的複製關係將終止。
    如果希望長期保證這兩個伺服器之間的主從關係,可以在redis_6380的設定檔中做如下修改:
    />  vi 6380.conf
    將
    # slaveof <masterip> <masterport>
    改為
    slaveof 127.0.0.1 6379     masterauth redis
    儲存退出。 去除主從關係:slaveof no one備忘:
SLAVEOF host port

SLAVEOF 命令用於在 Redis 運行時動態地修改複製(replication)功能的行為。

通過執行 SLAVEOF host port 命令,可以將當前伺服器轉變為指定伺服器的從屬伺服器(slave server)。

如果當前伺服器已經是某個主伺服器(master server)的從屬伺服器,那麼執行 SLAVEOF host port 將使當前伺服器停止對舊主伺服器的同步,丟棄舊資料集,轉而開始對新主伺服器進行同步。

另外,對一個從屬伺服器執行命令 SLAVEOF NO ONE 將使得這個從屬伺服器關閉複製功能,並從從屬伺服器轉變回主伺服器,原來同步所得的資料集不會被丟棄。

利用『 SLAVEOF NO ONE 不會丟棄同步所得資料集』這個特性,可以在主伺服器失敗的時候,將從屬伺服器用作新的主伺服器,從而實現無間斷運行。

時間複雜度: SLAVEOF host port ,O(N),  N 為要同步的資料數量。 SLAVEOF NO ONE , O(1) 。 傳回值:總是返回  OK 。 四、執行個體 127.0.0.1:6379> incr ab
(integer) 1 127.0.0.1:6380> get ab
"1" 127.0.0.1:6379> keys *
1) "a"
2) "ab" 127.0.0.1:6380> keys *
1) "a"
2) "ab" 127.0.0.1:6379> del a (integer) 1 127.0.0.1:6379> keys *
1) "ab" 127.0.0.1:6380> keys *
1) "ab" 127.0.0.1:6380> del ab(error) READONLY You can‘t write against a read only slave. 

 參考:

http://redis.readthedocs.org/en/latest/server/slaveof.html

http://redis.io/topics/replication

http://www.cnblogs.com/stephen-liu74/archive/2012/02/23/2364717.html

http://sofar.blog.51cto.com/353572/861276/

 

Redis 主從配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.