首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >redis与django-redis无关

redis与django-redis无关
EN

Stack Overflow用户
提问于 2015-09-21 18:50:33
回答 2查看 347关注 0票数 0

我在缓存中设置了一个查询集为:

代码语言:javascript
复制
cache.set('person',Lecture_Detail.objects.all())

在我看来:

代码语言:javascript
复制
from django.core.cahe import cache
t3=datetime.datetime.now()
list(Lecture_Detail.objects.all())
t5 = datetime.datetime.now()
print "time before",(t5 - t3)
g = cache.get('person')
t4 = datetime.datetime.now()
print "time after",(t4 - t5)
g = cache.get('person')
t6 = datetime.datetime.now()
print "time after",t6-t4
g = cache.get('person')
t7 = datetime.datetime.now()
print "time after",t7-t6

当我导出它时,它的输出是:

代码语言:javascript
复制
time before 0:00:00.014256
time after 0:00:01.366022
time after 0:00:01.552436
time after 0:00:01.433049

所以我认为我的redis和django-redis没有关系。我的设置是:

代码语言:javascript
复制
CACHES = {
    "default": {
        "BACKEND": "redis_cache.RedisCache",
        "LOCATION": "redis://127.0.0.1:6379:1",
        "OPTIONS": {
            "CLIENT_CLASS": "redis_cache.client.DefaultClient",
        }
    }
}

所以请给我一些建议..提前感谢..

EN

回答 2

Stack Overflow用户

发布于 2015-09-21 19:17:19

当您编写queryset=Lecture_Detail.objects.all()数据库时,sql query尚未执行。执行查询时:

  1. iteration
  2. slicing
  3. Pickling/Caching
  4. repr()
  5. len()
  6. list()
  7. bool()

点击这里了解更多信息:When QuerySets are evaluated。因此,在您的示例中,数据库查询将在行cache.set('person',queryset)上执行

您可以通过将行从queryset=Lecture_Detail.objects.all()更改为list(queryset=Lecture_Detail.objects.all())来进行测试

票数 5
EN

Stack Overflow用户

发布于 2015-09-28 18:20:56

实际上我的错误是我使用的是django缓存而不是redis缓存……要使用redis,我们必须这样做:

首先从python shell或视图中设置数据,如下所示:

代码语言:javascript
复制
import redis
r=redis.StrictRedis()
r.set('person',Lecture_Detail.objects.all())

要从redis缓存中获取数据:

代码语言:javascript
复制
import redis

r=redis.StrictRedis()
t3=datetime.datetime.now()
list(Lecture_Detail.objects.all())
t5 = datetime.datetime.now()
print "time before",(t5 - t3)
g = r.get('person')
t4 = datetime.datetime.now()
print "time after",(t4 - t5)

现在的时差简直令人难以置信

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32693362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档