Django:使用Redis作为缓存的超时的含义

时间:2014-12-13 13:23:54

标签: python django caching redis timeout

我使用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 个答案:

答案 0 :(得分:1)

此答案是基于您使用django-redis包并使用默认设置的假设而给出的。

  

假设我将超时设置为30秒。这是否意味着30秒后缓存中的键值对将被删除,我将不得不将(更新的)值重新提供给缓存?

是。在指定为超时的30秒后,密钥值对将从redis中删除。然后,您需要再次使用给定的键值对重新填充缓存。

在设置和获取缓存键的问题中给出的上述代码是有效的。当密钥在redis缓存中不存在时,cache.get('key')返回的默认值为None

使用带有超时参数的cache.set()方法,调用redis命令SETEX ... http://redis.io/commands/setex