[英]REDIS LIST MOVE recovery/rollback strategy
我有以下情況:
我有一個 REDIS 列表,我將其用作隊列。 正如預期的那樣,隊列中的每個元素都必須由一個且只有一個元素處理器處理。 但是,在一些奇怪的極端情況下,我有時會遇到這種情況:
-> BLMOVE A B 8
(*) I get a timeout here after 30 seconds
(也就是說,從列表A
移動到列表B
並阻塞8 seconds
我遇到的問題是 ELEMENT 實際上從列表A
移動到列表B
並且我仍然得到超時,所以在這個異常之后元素在隊列B
中丟失並且永遠不會被處理。 我了解這可能是 REDIS CONNECTION 的網絡問題。
我的問題是:處理此類案件的最佳方法是什么? 有沒有辦法“恢復”未處理的元素並重試?
有幾種方法可以解決這個問題:
使用具有故障轉移功能的 REDIS SENTINEL。 這樣,如果主 REDIS 實例出現故障,哨兵將自動故障轉移到副本實例,並且您的元素不會丟失。
使用 REDIS 集群。 這將為您提供高可用性,並確保您的元素在發生故障時不會丟失。
使用 REDIS 復制設置。 這將為您提供一個熱備用 REDIS 實例,如果主實例出現故障,該實例可以接管。
使用 REDIS 持久性設置。 這將確保您的元素在發生故障時不會丟失。
使用 REDIS 備份設置。 這將確保您的元素在發生故障時不會丟失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.