【发布时间】:2016-03-12 19:38:22
【问题描述】:
我想做的是用 Django 对 Redis 进行故障转移,但找不到方法。
我的设置如下:
- 我使用 Redis 作为会话后端。
- 我在主从关系中设置了两台 Redis 服务器,当主服务器出现故障时,从服务器自动成为主服务器(使用 Sentinel)
我这样设置 settings.py
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION':[
"127.0.0.1",
"IPofSlave"
],
'OPTIONS': {
'PASSWORD': "xxxxxxxx",
'DB': 0,
}
}
}
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
SESSION_CACHE_ALIAS = "default"
我想让django正常只使用master,连接不上master时自动切换到slave。
我怎样才能通过编辑 settings.py 来做到这一点,还是应该采取其他方式?
【问题讨论】:
-
您可以创建一个脚本(由您的轮询系统调用),使用从服务器信息更新
settings.py,然后重新启动您的应用程序。或者,您可以拥有settings.py、settings.py.slave、settings.py.master的多个副本,然后让您的投票系统使用适当的文件覆盖您的settings.py。
标签: django session redis failover redis-sentinel