如何在Django的settings.py中配置使用fakeredis替代Redis?
可以直接让Django缓存和RQ队列指向fakeredis
完全可行,不用每次手动覆盖连接,只需在测试环境的配置文件中修改对应配置项即可,测试时会自动使用fakeredis实例,无需启动真实Redis服务。
1. 修改Django缓存配置
将原RedisCache配置替换为兼容fakeredis的设置,推荐两种方式:
方式一:基于django-redis指定fakeredis客户端
CACHES = { 'default': { 'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://localhost:6379/0', # 地址仅作占位,不会连接真实Redis 'OPTIONS': { 'CLIENT_CLASS': 'fakeredis.FakeRedis', } } }
方式二:直接使用fakeredis缓存后端(需fakeredis版本≥1.9.0)
CACHES = { 'default': { 'BACKEND': 'fakeredis.cache.FakeRedisCache', } }
2. 修改RQ队列配置
在RQ队列配置中添加CONNECTION_CLASS参数,指定fakeredis客户端类:
RQ_QUEUES = { 'default': { 'HOST': 'localhost', # 占位地址 'PORT': 6379, 'DB': 0, 'DEFAULT_TIMEOUT': 360, 'CONNECTION_CLASS': 'fakeredis.FakeRedis', # 关键配置 }, }
注意事项
- 建议在单独的测试配置文件(如
settings_test.py)中修改,避免影响生产环境的真实Redis配置。 - 确保已安装所需依赖:
pip install fakeredis django-redis # 使用方式一需安装django-redis,方式二仅需fakeredis
内容的提问来源于stack exchange,提问作者Scratcha
相关产品推荐
相关产品推荐

