在一台linux機器上啟動多個redis執行個體:學習redis的master-slave功能__linux

來源:互聯網
上載者:User

linux機器上安裝redis是非常容易的,這裡不做介紹了。因為要學習主從複製功能,而我手上又只有一台機器,所以就需要在一台機器上啟動多個redis執行個體。我們需要將預設的redis.conf檔案複製一份,然後修改一下對應的設定就可以了,保證多個redis執行個體不出現共用資料就可以了。

#拷貝一份新的設定檔>cp redis.conf redis6001.conf#vi修改對應的配置項>vi redis6001.conf#主要修改下面3個配置項就可以了pidfile : /var/run/redis_6380.pidport 6001rdbfile : dump6001.rdb


然後我們就可以redis-server指定新的設定檔,這樣就可以啟動一個新的redis執行個體。

redis-server redis6001.conf


如何配置一個從伺服器是非常簡單的,比如我們在6001和6002連接埠啟動2個redis執行個體,想讓6001作為master,6002作為slave,那麼我們只需要在redis6002.conf中配置如下:

slaveof 127.0.0.1 6001





從Redis2.6開始,從伺服器支援唯讀模式,並且該模式為從伺服器的預設模式。唯讀模式由 redis.conf 檔案中的 slave-read-only 選項控制。唯讀從伺服器會拒絕執行任何寫命令, 所以不會出現因為操作失誤而將資料不小心寫入到了從伺服器的情況。






如果因為網路故障,slave不能串連到master,那麼我們可以通過slave-serve-stale-data配置是否讓slave繼續提供服務。




從Redis2.8開始,為了保證資料的安全性,可以通過配置, 讓主伺服器只在有至少 N 個當前已串連從伺服器的情況下,才執行寫命令。不過, 因為 Redis 使用非同步複製, 所以主伺服器發送的寫資料並不一定會被從伺服器接收到, 因此資料丟失的可能性仍然是存在的。如果至少有 min-slaves-to-write 個從伺服器, 並且這些伺服器的延遲值都少於 min-slaves-max-lag 秒, 那麼主伺服器就會執行用戶端請求的寫操作。你可以將這個特性看作 CAP 理論中的 C 的條件放寬版本: 儘管不能保證寫操作的持久性, 但起碼遺失資料的視窗會被嚴格限制在指定的秒數中。另一方面, 如果條件達不到 min-slaves-to-write 和 min-slaves-max-lag 所指定的條件, 那麼寫操作就不會被執行, 主伺服器會向請求執行寫操作的用戶端返回一個錯誤。



無論是初次串連還是重新串連, 當建立一個從伺服器時的時候, 從伺服器都將向主伺服器發送一個 SYNC 命令。接到 SYNC 命令的主伺服器將開始執行BGSAVE , 並在儲存操作執行期間, 將所有新執行的寫入命令都儲存到一個緩衝區裡面。當 BGSAVE 執行完畢後, 主伺服器將執行儲存操作所得的 .rdb 檔案發送給從伺服器, 從伺服器接收這個 .rdb 檔案, 並將檔案中的資料載入到記憶體中。之後主伺服器會以 Redis 命令協議的格式, 將寫命令緩衝區中積累的所有內容都發送給從伺服器。即使有多個從伺服器同時向主伺服器發送 SYNC , 主伺服器也只需執行一次 BGSAVE 命令, 就可以處理所有這些從伺服器的同步請求。從伺服器可以在主從伺服器之間的串連斷開時進行自動重連, 在 Redis 2.8 版本之前, 斷線之後重連的從伺服器總要執行一次完整重同步(full resynchronization)操作, 但是從 Redis 2.8 版本開始, 從伺服器可以根據主伺服器的情況來選擇執行完整重同步還是部分重同步(partial resynchronization)。




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.