Che*_*mer 5 django caching ttl redis
我正在使用 django 1.5.4 和 django-redis 3.7.1
当我检索它时,我想扩展缓存的 ttl(time-to-live)。
这是示例代码
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
Run Code Online (Sandbox Code Playgroud)
我试图在django-redis-docs搜索这个选项,但我找不到它。
但是,我注意到在 redis 本机命令中可以使用指定现有缓存的生存时间值,例如“ Expire foo 100
”
我知道cache.set
再次使用会产生相同的效果,但我想使用具有生存时间属性的更简单的方法。
小智 6
要扩展 django-redis 缓存记录的 ttl(time-to-live) 使用expire(key, timeout)
Django-Redis:过期并保留
from django.core.cache import cache
cache.set("foo", 1, timeout=100)
cache.ttl("foo")
>>> 100
Run Code Online (Sandbox Code Playgroud)
如果密钥已经过期,则不能延长 ttl(time-to-live)
if cache.ttl("foo") > 0:
cache.expire("foo", timeout=500)
cache.ttl("foo")
>>> 500
Run Code Online (Sandbox Code Playgroud)
我解决了这个问题。
(1) 使用“原始客户端访问”和 (2) 扩展 TTL 值而不覆盖
请参考以下代码。
from redis_cache import get_redis_connection
con = get_redis_connection('default')
con.expire(":{DB NUMBER at settings.py}:" + "foo", 100)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4445 次 |
最近记录: |