2016-07-10 34 views
1

我們想RPUSH/LPUSH列表爲空的鍵。
這是出於一致性的原因:當使用LRANGE讀取密鑰而不是列表爲空時,其餘代碼的行爲相同。

爲什麼如果一個密鑰有一個空列表被刪除的事實是一個問題?
因爲我們使用Redis作爲緩存並想區分這兩種情況:
1.具有相應值的特定鍵尚未被緩存。在這種情況下,我們要計算這些值(需要很長時間)並緩存它們。計算結果可能是一個空白列表。
2.具有空列表的密鑰已被緩存。在這種情況下,我們不想執行計算並返回一個空列表。
Redis - 如何RPUSH/LPUSH空列表

下列選項不工作:

1 RPUSH鍵 - >無列表值結果與「錯誤的參數個數」。
2. RPUSH鍵[] - >增加了一個「[]」項

目前我們使用正存儲一個項目列表與一個「空項目」項目的(醜陋)溶液中,並檢查當我們讀清單時。

任何想法?

謝謝

回答

2

空列表不存在的Redis - 列表必須有一個或多個項目。空列表(例如,由於彈出非空列表)將被自動刪除。