簡體   English   中英

Redis復制而非RO從屬

[英]Redis replication and not RO slaves

美好的一天!
假設我們有一個redis-master和幾個slave。 主要目標是存儲所有數據,而從屬對象用於為用戶查詢數據。 Hovewer查詢有點復雜,需要存儲一些臨時數據。 我也想將查詢結果緩存幾分鍾。

如何配置復制以保存臨時數據和緩存?

Redis從站具有可選的支持來接受寫入,但是在使用它們之前,您必須了解可寫從站的一些限制,因為它們存在一些瑣碎的問題。

  1. 在從屬服務器上創建的密鑰將不支持過期。 實際上,在最新版本的Redis中,它們似乎可以工作,但實際上是泄漏的,而不是過期的,直到下一次從頭重新將slave與master同步或發出FLUSHALL之類。 這個問題有很深的原因...目前尚不清楚我們是否將完全棄用可寫的從屬服務器,找到解決方案,或者拒絕可寫的從屬服務器過期。
  2. 無論如何,您可能想要使用其他Redis數字數據庫(SELECT命令)來存儲中間數據(您可以使用MULTI /.../ MOVE / EXEC事務來在當前選定的數據庫中生成中間結果數據所屬的位置,並將密鑰移至其他數據庫,因此可以清楚地知道密鑰是否在累積,您可以不時使用FLUSHDB)。
  3. 您在從站上創建的密鑰是易失性的 ,當主站與從站重新同步時,它們可能會消失。 對於您來說這似乎不是一個問題,因為如果它們的密鑰不再存在,您可以重新計算,但是應該小心,
  4. 如果將此從站選舉為主站,則內部將具有其他鍵。

因此,在此設置中肯定要記住一些事情,但是以某種方式可行。 但是,您可能需要考慮其他策略。

  1. 從屬端的Lua腳本是為了過濾Lua中的數據。 速度不如Redis C命令那么快。
  2. 直接在實際數據集中進行數據預計算,以便僅使用只讀命令就可以進行查詢。
  3. 遷移以便將有趣的密鑰從從屬遷移到專門設計用於執行后期計算的實例(另一個主控)。

在不深入分析實際用例/問題的情況下,很難說出最佳策略是什么,但是我希望這個通用指南能有所幫助。

暫無
暫無

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

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