redis不是有16个数据库吗?
django默认配置使用的是索引为0的数据库。
django如何配置多个redis数据库,例如需要使用redis的0和2数据库?
在视图层应该如何选择不同的redis数据库使用?
redis不是有16个数据库吗?
django默认配置使用的是索引为0的数据库。
django如何配置多个redis数据库,例如需要使用redis的0和2数据库?
在视图层应该如何选择不同的redis数据库使用?
首先在django里用redis,自然推荐你使用 django-redis
库。然后回归到你得需求,你需要在 settings.py
的 CACHES
里面设置多个redis数据库配置,并设置名称。比如:
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0"
},
"db1": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1"
}
}
然后在你得视图层,使用 get_redis_connection
函数去获取对应的redis数据库。
def get_redis_connection(alias="default", write=True):
"""
Helper used for obtaining a raw redis client.
"""
from django.core.cache import caches
cache = caches[alias]
if not hasattr(cache, "client"):
raise NotImplementedError("This backend does not support this feature")
if not hasattr(cache.client, "get_client"):
raise NotImplementedError("This backend does not support this feature")
return cache.client.get_client(write)
15 回答8.1k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
我理解为你用的是
django-redis
这个模块做的缓存。你可以在配置文件的连接字符串里直接指定库的索引:
要是有多个缓存来源,配置多个就好了;
P.S. redis 并不是只有 16 个数据库,只是你通过 Linux 发行版的包管理工具安装的 redis-server 后默认的配置文件里这个数设置的是 16 而已……