2

到目前为止,我一直在为我的 4 个站点使用单个 memcached 实例。在其中三个我使用 aKEY_PREFIX因为文档暗示我需要这样做。一切都很好,但现在我需要定期清除列表视图(比如添加条目时)。我找到了一种清除页面的方法,并在我遇到时正在查看它是如何工作的CACHE_MIDDLEWARE_KEY_PREFIX,现在我很困惑。

  1. 似乎从未使用过 KEY_PREFIX ,除非您手动定义一个键然后实际使用它。这是一个真实的说法吗?特别是有关使用的文档KEY_PREFIX似乎不准确?

  2. 看来我应该在我的设置文件中执行此操作以确保它们对齐但我不想复制密钥(演示:演示:)。这实际上会复制它吗?

    KEY_PREFIX = CACHE_MIDDLEWARE_KEY_PREFIX = '演示:'

我真的很想了解这两种机制是如何工作的。我开始怀疑他们真的不一样

4

1 回答 1

0

我不认为你现在不完全正确。

对于您的第 1 点,KEY_PREFIX 是使用不同 django 安装共享相同缓存时最重要的设置,但它的使用方式如下:

CACHES = {
    'default': {
        "BACKEND": "redis_cache.cache.RedisCache",
        "LOCATION": "127.0.0.1:6379:1",
        "KEY_PREFIX": 'site-cache-prefix',
        "OPTIONS": {
            "CLIENT_CLASS": "redis_cache.client.DefaultClient",
        }
    }
}

这意味着每个 django 实例在访问缓存时都将使用不同的前缀。这可能就是你想要的。如果您确实想在您的站点之间专门共享缓存,那么添加另一个名为“shared”的缓存别名可能是可行的方法。

CACHE_MIDDLEWARE_KEY_PREFIX专门用于 django 的缓存中间件,我相信它将与 KEY_PREFIX 一样使用。

于 2014-10-21T10:07:27.680 回答