代码之家  ›  专栏  ›  技术社区  ›  Milano

Django数据库缓存超时-使后端删除行

  •  2
  • Milano  · 技术社区  · 6 年前

    我不知道是什么 Django

    我想要 在它们过期后删除它们,因为它们的大小非常大,并且可以有无限数量的不同密钥。

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
            'LOCATION': 'cache_table',
            'TIMEOUT': 60 * 20,
        }
    }
    

    cache 在过滤后的对象列表中,此筛选器包含数字和字符字段。

    有可能吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   jacobian    6 年前

    不可能在过期的条目过期时清除它们。这是您可能不想在生产中使用数据库缓存的众多原因之一!

    如果可能,您应该切换到另一个缓存后端(我更喜欢Redis)。如果你做不到,你还有其他选择:

    1. 如果知道要清除的缓存键,则可以使用 the low-level cache API 直接删除要清除的关键帧。

    2. 你可以调整一下 MAX_ENTRIES CULL_FREQUENCY cache arguments 限制缓存的总大小。

    3. DELETE FROM cache_table WHERE expires < now()