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)
我理解为你用的是 django-redis
这个模块做的缓存。
你可以在配置文件的连接字符串里直接指定库的索引:
redis://127.0.0.1:6379/1# 或者unix:///your_redis_path/redis.sock?db=1
要是有多个缓存来源,配置多个就好了;
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379" }, "db1": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1" }, "db2": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/2" }}
P.S. redis 并不是只有 16 个数据库,只是你通过 Linux 发行版的包管理工具安装的 redis-server 后默认的配置文件里这个数设置的是 16 而已……
我们将redis用于缓存和会话。我希望能够使用分离redis数据库(相同的服务器,只是不同的数据库)为每个情况,以及能够使用相同的服务器生产和预生产。我知道Redis允许您在一台服务器上定义多个数据库(http://www.redisocokbook.org/multiple_databases.html),但是我不知道如何将其翻译成Redis。配置(至少根据文档http://laravel.co
问题内容: 我正在尝试将Django多数据库配置与MYSQL用作默认数据库,将redshift用作分析数据库。我的配置看起来像这样: 当我尝试迁移分析应用程序时,请使用以下命令 我看到以下错误: 关于如何解决此问题的任何想法?我正在使用和 问题答案: 特定的问题是:Django想要创建一个具有主键的迁移管理表来跟踪迁移历史。Redshift不支持。 但是,这种方法更普遍的问题是,您真的不希望在Re
问题内容: 有没有一种方法可以使用Redis刷新Redis数据库? 我正在寻找类似或 问题答案: Redis-py实际上具有以下功能:
问题内容: 我听说过redis-cache,但是它是如何工作的呢?通过以某种方式缓存rdbms查询,它是否被用作Django和我的rdbms之间的一层? 还是应该直接将其用作数据库?我对此表示怀疑,因为该github页面不包含任何登录详细信息,所以没有设置..只是告诉您设置一些config属性。 问题答案: 这个Redis的Python模块在自述文件中有一个清晰的用法示例:http : //git
问题内容: 请考虑以下示例 [+]输出:set([‘1’,‘3’,‘2’]) [+]输出:set([[‘1’,‘3’,‘2’,’set([3,4])’]) [+] set([‘1’,’[3,4]’,‘3’,‘2’,’set([3,4])’]) 根据https://redis-py.readthedocs.org/zh-CN/latest/中的官方文档, sadd(name,* values)添加值
问题内容: 我一直在评估django,并想知道以下情况是否可能。我已经看过常规的多个数据库文档,所以请不要指向我,因为据我所知,并没有提到该用例。如果我错了,我把它拿回来:) 我想要一个主数据库,我的大多数应用程序模型都将驻留在其中,但是该应用程序之一将需要动态创建数据库,这些数据库将是客户特定的数据库。 数据库路径(我计划使用sqlite)将存储在主数据库中,因此需要更改游标,但模型将保持不变。