【问题标题】:Django Database CachingDjango 数据库缓存
【发布时间】:2009-07-05 18:19:09
【问题描述】:

我正在做一个小项目,我想为最终用户提供多个缓存选项。我认为使用 Django 将 memcached 交换为基于数据库或文件的缓存非常简单。我的 memcached 实现就像一个冠军,没有任何问题。我在我的页面上放置了时间戳,并且 curl 始终在我希望缓存正常工作的位置显示较旧的时间戳。但是,当我切换到数据库缓存时,我没有在数据库中获得任何条目,并且公然缓存不起作用。

根据我在文档中看到的所有内容,只需将后端更改为:

CACHE_BACKEND = 'memcached://localhost:11211'

收件人:

CACHE_BACKEND = 'db://cache_table'

运行所需的 manage.py (createcachetable) 行后该表存在,我可以正常查看。我目前正在测试中,所以我使用的是 sqlite3,但据我所知,这并不重要。我可以确认该表完全是空的,并且在任何时候都没有被写入。此外,正如我之前所说,我的时间戳也是“错误的”,这给了我更多证据表明某些事情不太正确。

有什么想法吗?我正在使用 sqlite3、Django 1.0.2、python 2.6,目前在 Ubuntu Jaunty 机器上通过 Apache 提供服务。我确定我只是在掩饰一些简单的事情。感谢您提供的任何帮助。

【问题讨论】:

    标签: python django django-cache


    【解决方案1】:

    根据文档,您不应该使用 syncdb 创建表,而是使用以下内容:

    python manage.py createcachetable cache_table
    

    如果您还没有这样做,请尝试看看它是否不起作用。

    【讨论】:

    • 打错字了,抱歉。改正了
    • @lemonad 一旦我更新了一些东西然后调用相同的 API 更新的数据没有从缓存的数据库中获取它,我应该如何处理这个问题?
    • @PiyushS.Wanare 这个问题来自 2009 年,因此您最好打开一个新问题。但一般来说,您必须提供自己的缓存失效方案。也就是说,如果您更新某些内容,则必须手动从缓存中删除该值。否则,仍会提供旧值。
    猜你喜欢
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 2012-08-16
    • 2016-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多