【问题标题】:django-cache-machine and Redisdjango-cache-machine 和 Redis
【发布时间】:2013-03-20 06:37:43
【问题描述】:

我正在尝试使用 django-cache-machine 在我的应用程序中缓存查询,但我想使用 Redis 作为后端。 The docs 并没有真正解释如何做到这一点,但 the repository 充满了 Redis 引用,所以我很确定这是可能的。不过,我想确保我做对了,所以我想知道是否有人有任何配置此功能的经验,也许更重要的是,知道是否有任何警告?

【问题讨论】:

    标签: django django-cache django-cache-machine


    【解决方案1】:

    【讨论】:

    • 请注意,当设置 CACHE_MACHINE_USE_REDIS = True 时,django-cache-machine 并没有真正使用 Redis 来缓存你的模型对象,所以你仍然需要配置 memcached。它只使用 Redis 来存储和操作刷新列表。
    【解决方案2】:

    我的项目有一点经验,一个从大约 5000 万条记录生成表格的报表系统。

    数据库是 Mysql,我可以显示我的设置和模型供参考。

    设置:

        # cache machine
    CACHES = {
        'default': {
            'BACKEND': 'caching.backends.memcached.MemcachedCache',
            'LOCATION': [
                '127.0.0.1:11211',
            ],
            'PREFIX': 'report:',
        },
    }
    CACHE_COUNT_TIMEOUT = 60 * 24  # one day
    CACHE_EMPTY_QUERYSETS = True
    

    型号:

    class App(**CachingMixin**, models.Model):
        **objects = CachingManager()**
    
        name = models.CharField(max_length=64,
                                default='')
    

    请注意, 缓存机器适用于 query_set。filtercount,不适用于 query_set。注释聚合。当然不要忘记先启动你的 memcache 客户端。

    在运行时,您可以在 django*.log 中看到缓存机器日志,告诉您命中或未命中缓存。

    【讨论】:

      猜你喜欢
      • 2014-03-22
      • 2015-03-26
      • 2017-08-31
      • 2017-06-19
      • 2014-10-02
      • 2014-06-02
      • 2017-08-28
      • 2014-06-25
      • 2017-01-09
      相关资源
      最近更新 更多