我正在使用 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 秒后缓存值仍然存在?
感谢您的任何帮助!
此答案是基于您使用django-redis
包并使用默认设置的假设给出的。
假设我将超时设置为 30 秒。这是否意味着在 30 秒后,缓存中的键、值对将被删除,我将不得不将(更新的)值重新馈送到缓存中?
是的。 键值对将在指定为超时的 30 秒后从 redis 中删除。 然后,您需要再次使用给定的键,值对重新填充缓存。
上面在问题中给出的用于设置和获取缓存键的代码是有效的。 当 redis 缓存中不存在密钥时,从 cache.get('key')
返回的默认值None
。
使用带有超时参数的 cache.set()
方法,调用 redis 命令SETEX
...http://redis.io/commands/setex