【Redis專題】實現redis的主從複製

   redis主從複製配置和使用都很是簡單。能夠容許多個slave server,並擁有和master server相同的數據副本。

 一、redis主從複製的過程
    當設置好slave服務器後,slave會創建和master的鏈接,而後發送sync命令。不管是第一次同步創建的鏈接仍是鏈接斷開後的從新鏈接,master都會啓動一個後臺進程,將數據庫快照保存到文件中,同時master主進程會開始收集新的寫命令並緩存起來。後臺進程完成寫文件後,master就發送文件給slave,slave將文件保存到磁盤上,而後加載到內存恢復數據庫快照到slave上。接着master就會把緩存的命令轉發給slave。並且後續master收到的寫命令都會經過開始創建的鏈接發送給slave。從master到slave的同步數據的命令和從client發送的命令使用相同的協議格式。當master和slave的鏈接斷開時slave能夠自動從新創建鏈接。若是master同時收到多個slave發來的同步鏈接命令,只會使用啓動一個進程來寫數據庫鏡像,而後發送給全部slave。 二、redis主從複製的特色
    1.master能夠有多個slave
    2.除了多個slave連到相同的master外,slave也能夠鏈接其餘slave造成圖狀結構
    3.主從複製不會阻塞master。也就是說當一個或多個slave與master進行初次同步數據時,master能夠繼續處理client發來的請求。相反slave在初次同步數據時則會阻塞不能處理client的請求。
    4.主從複製能夠用來提升系統的可伸縮性,咱們能夠用多個slave 專門用於client的讀請求,好比sort操做可使用slave來處理。也能夠用來作簡單的數據冗餘
    5.能夠在master禁用數據持久化,只須要註釋掉master 配置文件中的全部save配置,而後只在slave上配置數據持久化。web

     在master/slave上分別安裝redis,配置slave服務器很簡單,複製master上的配置文件redis.conf到slave目錄(/usr/local/webserver/redis-2.4.4/etc/)。
以後在配置文件中添加以下配置便可
slaveof 192.168.52.199 6379   #指定master的ip和端口
#masterauth redis redis

測試:
一、Master端操做:
   [root@lx_web_s1 etc]# /usr/local/webserver/redis-2.4.4/bin/redis-cli -a test
   redis 127.0.0.1:6379> set k_m master
   OK
   redis 127.0.0.1:6379>二、slave端操做:
   [root@study_web_t2 redis-2.4.4]# /usr/local/webserver/redis-2.4.4bin/redis-cli -a test
   redis 127.0.0.1:6379> get k_m
   "master"數據庫

    更多相關知識交流,QQ羣:24967504
相關文章
相關標籤/搜索