【问题标题】:how to failover Redis with Django如何使用 Django 对 Redis 进行故障转移
【发布时间】: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.pysettings.py.slavesettings.py.master 的多个副本,然后让您的投票系统使用适当的文件覆盖您的settings.py

标签: django session redis failover redis-sentinel


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-25
    • 2021-02-27
    • 1970-01-01
    • 2019-06-08
    • 2023-03-24
    相关资源
    最近更新 更多