簡體   English   中英

在本地緩存Redis集群

[英]Cache a redis cluster locally

我有一個要使用redis的場景,但是我不確定如何進行設置。 這是我們最終要實現的目標:

  1. 一個冗余的中央redis群集,其中所有寫入將在兩個aws區域中的服務器上進行。

  2. 服務器上的本地redis緩存將保存整個中央集群的副本。

這樣做的原因是,我們有許多只需要讀訪問權限的服務器,即使在發生故障(服務器無法到達主群集)的情況下,我們也希望它們是獨立的。

我知道緩存可能存在“過時的數據”問題,但是只要我們能達到最終的一致性,我們就可以忍受。

使用redis實現類似目標的正確方法是什么?

謝謝!

您需要Redis復制(主從)體系結構

Redis復制:

Redis主從架構

Redis復制使用和配置主從復制非常簡單,它允許從Redis服務器成為主服務器的精確副本。 以下是有關Redis復制的一些非常重要的事實:

  • Redis使用異步復制。 從Redis 2.8開始,從站會定期確認從復制流處理的數據量。
  • 一個主機可以有多個從機。
  • 從站能夠接受其他從站的連接。 除了將多個從站連接到同一主站之外,從站還可以以級聯結構連接到其他從站。
  • Redis復制在主端無阻塞。 這意味着當一個或多個從屬設備執行初始同步時,主控設備將繼續處理查詢。
  • 復制在從屬端也是非阻塞的。 當從屬服務器執行初始同步時,假定您在redis.conf中配置了Redis,則它可以使用舊版本的數據集處理查詢。 否則,您可以配置Redis從屬服務器,以在復制流關閉時將錯誤返回給客戶端。 但是,在初始同步之后,必須刪除舊的數據集,並且必須加載新的數據集。 從設備將在此短暫的窗口內阻止傳入的連接(對於非常大的數據集,該連接可能長達幾秒鍾)。
  • 復制既可以用於可伸縮性,也可以用於多個從服務器進行只讀查詢(例如,可以將慢速的O(N)操作卸載到從服務器上),也可以僅用於數據冗余。
  • 可以使用復制來避免讓主服務器將整個數據集寫入磁盤的成本:一種典型的技術包括配置主服務器redis.conf以避免完全保留到磁盤,然后連接一個配置為不時保存的從服務器,或啟用AOF。 但是,必須謹慎處理此設置,因為重啟的主服務器將以一個空的數據集開始:如果從服務器嘗試與其同步,則從服務器也將被清空。

完成以下步驟: 如何配置Redis復制

因此,我決定使用redis-sentinel

使用redis-sentinel我可以將緩存服務器上的slave-priority設置為0,這將阻止它們成為主服務器。

我將設置一個主服務器,以及幾個“備份主服務器”,它們實際上將是從屬服務器,其slave-priority設置為不為0的值,一旦主服務器發生故障,它們將接管他們。

哨兵將監視主服務器,一旦主服務器崩潰,它將升級“備份主服務器”之一並將其升級為新的主服務器。

更多信息可以在這里找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM