2014-12-13 74 views
1

我使用的含義Django的內置與Redis的作爲緩存服務器模塊。我的問題是關於超時設置在下面的代碼:Django的:超時使用Redis的作爲高速緩存

cache.set(key,value,timeout) 

說我設置超時爲30秒。這是否意味着在30秒之後緩存中的鍵值對將被刪除,並且我將不得不將(更新的)值重新輸入緩存?事情是這樣的:

if cache.get('key') is None: 
     cache.set('key','value',30) 
    else: 
     return cache.get('key') 

或者30歲之後緩存值將仍然存在?

感謝您的幫助!

回答

1

這個答案是根據你所使用的django-redis包,並使用默認設置的假設基礎上給出。

說我設定的超時時間爲30秒。這是否意味着在30秒之後緩存中的鍵值對將被刪除,並且我將不得不將(更新的)值重新輸入緩存?

是的。在指定爲超時的30秒之後,鍵值對將從redis中刪除。然後您需要再次使用給定的鍵,值對重新填充緩存。

這是在給定的問題來設置和獲取緩存鍵上面的代碼是有效的。是從cache.get('key')返回默認值是None當鑰匙不在Redis的緩存中。

使用cache.set()方法有一個超時參數,調用Redis的命令SETEX ... http://redis.io/commands/setex

+0

謝謝你的快速回復!我已經做了一些測試,事實上在30秒後,它會重新查詢數據庫,因爲我想要的數據不再存在於緩存中。 – 2014-12-13 15:48:37