1

我有一个 Django 项目,我正在使用django-redis,我想在其中实现不同类型的缓存,

  1. 缓存搜索查询
  2. 缓存静态页面
  3. 缓存用户数据(例如:在线状态)

我可以为不同类型的缓存添加不同的前缀,但我想为我拥有的所有不同的缓存使用不同的 redis 服务器。我在文档上找不到任何内容如何执行此操作

我当前的设置

CACHES = {
"default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://localhost:6379/1",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "PARSER_CLASS": "redis.connection.HiredisParser",
        "IGNORE_EXCEPTIONS": True,
    },
    "KEY_PREFIX": "db_cache",
}

}

我想要什么

CACHES = {
"default": {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://localhost:6379/",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "PARSER_CLASS": "redis.connection.HiredisParser",
    },
    "KEY_PREFIX": "db_cache",
},
'static_page': {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://localhost:6378/",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "PARSER_CLASS": "redis.connection.HiredisParser",
        "IGNORE_EXCEPTIONS": True,
    },
    "KEY_PREFIX": "db_cache",
},
'user_data': {
    "BACKEND": "django_redis.cache.RedisCache",
    "LOCATION": "redis://localhost:6377/",
    "OPTIONS": {
        "CLIENT_CLASS": "django_redis.client.DefaultClient",
        "PARSER_CLASS": "redis.connection.HiredisParser",
    },
    "KEY_PREFIX": "db_cache",
}

}

4

1 回答 1

3

好吧,我在寻找其他东西时找到了答案

而不是使用

from django.core.cache import cache
cache.set('hello', 'bye')
cache.get('hello')

它将数据存储在默认缓存中使用类似这样的东西

from django.core.cache import caches
c = caches['static_page']
c.set('hello', 'bye')
c.get('hello')

这么小的东西,大部分文档都没有单独提及,看文档的时候可能会漏掉。

于 2021-06-13T15:09:17.747 回答