我使用的是django 1.5.4和django-redis 3.7.1
我想在检索时扩展缓存的ttl(生存时间)。
以下是示例代码
from django.core.cache import cache
foo = cache.get("foo)
if not foo:
cache.set("foo", 1, timeout=100)
else:
// Extend Cache's Time-To-Live something like it
cache.ttl("foo") = 200
我尝试在django-redis-docs搜索此选项,但我无法找到它。
但是,我注意到现有缓存的指定生存时间值可通过redis本机命令获得,例如" Expire foo 100
"
我知道再次使用cache.set
会产生同样的效果,但我想使用更简单的方法来生成生存时间。
答案 0 :(得分:2)
要延长django-redis缓存记录的ttl(生存时间),请使用 expire(密钥,超时)
Django-Redis:Expire & Persist
from django.core.cache import cache
cache.set("foo", 1, timeout=100)
cache.ttl("foo")
>>> 100
如果密钥已经过期,则不能延长ttl(生存时间)
if cache.ttl("foo") > 0:
cache.expire("foo", timeout=500)
cache.ttl("foo")
>>> 500
答案 1 :(得分:0)
我解决了这个问题。
(1)使用' 原始客户端访问' (2)扩展TTL值而不覆盖
请参阅以下代码。
from redis_cache import get_redis_connection
con = get_redis_connection('default')
con.expire(":{DB NUMBER at settings.py}:" + "foo", 100)