django - 如何使用 Django 对 Redis 进行故障转移

标签 django session redis failover redis-sentinel

我想做的是用Django对Redis进行故障转移,但是找不到方法。

我的设置如下:

  • 我正在使用 Redis 作为 session 后端。
  • 我在主从关系中设置了两个 Redis 服务器,当主服务器发生故障时,从服务器自动成为主服务器(使用 Sentinnel)

我这样设置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 来做到这一点,或者我应该采取另一种方式吗?

最佳答案

我可能会选择类似 https://github.com/KabbageInc/django-redis-sentinel/blob/master/README.md 的东西它将哨兵支持添加到 Django Redis 插件。可能还有其他更合适的,这是在 Google 搜索 Django sentinel 时排在首位的。

关于django - 如何使用 Django 对 Redis 进行故障转移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146489/

相关文章:

django - 让 django url 标签静默失败

django - 在 Django Admin 中自定义一对一关系下拉列表

python - Django 如何在不刷新或重新加载页面的情况下插入数据

Java、Tomcat、 session - JSessionId 消失

session - session 可以由用户客户端操作吗?

c - 连接到 Redis 时,Unix 套接字比 tcp 慢

python - 在 Django 中只允许模型的一个实例

php - 无限重定向循环+ php不回显变量

apache - Redis PhpRedis 堆栈跟踪

laravel - 从缓存laravel中的数组获取对象值