2014-12-13 126 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