Django使用多个redi进行缓存



我有一个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",
}

}

我在寻找其他时找到了答案

而不是使用

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')

这是一件很小的事情,以至于大多数文档都没有单独提到它,在浏览文档时您可能会错过它。

相关内容

  • 没有找到相关文章

最新更新