当前位置:首页 > 技术分析 > 正文内容

Python3 Django 之 Redis缓存使用哨兵模式

ruisui884个月前 (03-10)技术分析22

Redis的哨兵(sentinel) 系统用于管理多个 Redis 服务器,该系统执行以下三个任务:

监控(Monitoring):哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常。

提醒(Notification):当被监控的某个 Redis出现问题时, 哨兵(sentinel) 可以通过 API 向管理员或者其他应用程序发送通知。

自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(sentinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master, 并让失效Master的其他Slave改为复制新的Master; 当客户端试图连接失效的Master时,集群也会向客户端返回新Master的地址,使得集群可以使用Master代替失效Master。

哨兵(sentinel) 是一个分布式系统,你可以在一个架构中运行多个哨兵(sentinel) 进程,这些进程使用流言协议(gossipprotocols)来接收关于Master是否下线的信息,并使用投票协议(agreement protocols)来决定是否执行自动故障迁移,以及选择哪个Slave作为新的Master。

每个哨兵(sentinel) 会向其它哨兵(sentinel)、master、slave定时发送消息,以确认对方是否活着,如果发现对方在指定时间(可配置)内未回应,则暂时认为对方已挂(所谓的“主观认为宕机” Subjective Down,简称sdown)。

若哨兵集群中的多数sentinel报告某一master没响应,系统才认为该master彻底死亡(即:客观上的真正down机,Objective Down,简称odown),通过一定的vote算法从剩下的slave节点中选一台提升为Master

1、哨兵结构示例图:

2、Master切换示例图:

Django环境连接redis sentinel模式

依赖的版本情况:

pip3 install django==2.2.27 #我在django3以上版本测试未成功
pip3 install django-sentinel==0.1.0

master name 为 mymaster

redis 哨兵的 ip 和 port 分别是:

192.168.1.1:26379
192.168.1.2:26380
192.168.1.3:26381
密码为:admin

Django中使用缓存配置

Django 使用redis缓存用到的依赖是 django-sentinel,这里给出 settings.py 配置示例:

# settings.py
# django-sentinel==0.1.0

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "mymaster/192.168.1.1:26379,192.168.1.2:26380,192.168.1.3:26381/0",
        "OPTIONS": {
            "PASSWORD": "admin",
            "CLIENT_CLASS": "django_sentinel.SentinelClient",
            "CONNECTION_POOL_KWARGS": {
                "max_connections": 100
            }
        }
    }
}

SESSION_ENGINE = 'django.contrib.sessions.backends.cache'

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2679.html

分享给朋友:

“Python3 Django 之 Redis缓存使用哨兵模式” 的相关文章

“韩版谷歌”Naver进军操作系统,发布自研免费Linux发行版

IT之家 12 月 11 日消息,有“韩版 Google”之称的 Naver 公司正式进军操作系统领域,发布了自主研发的 Linux 发行版 Navix,为企业提供了一个稳定、可靠且免费的 Linux 发行版选择。IT之家援引科技媒体 theregister 观点,此举效仿了谷歌的多元化发展战略,也...

首个支持苹果 M1 Mac 的 Linux 发行版发布,面向用户开放下载

IT之家 3 月 20 日消息,Asahi Linux 是研究 Linux for Apple Silicon macs 的组织群体,3 月 18 日,Asahi Linux 宣布成功在 M1 MacBook Air 笔记本电脑上运行,并开放了 Asahi Linux 的下载安装。Asahi Lin...

如何在GitLab上回退指定版本的代码?GitLab回退指定版本问题分析

在Git中,回退到指定版本并不是删除或撤销之前的提交,而是创建一个新的提交,该提交包含指定版本的内容。这意味着您需要将当前代码更改与指定版本之间的差异进行比较,并将其合并到一个新的提交中。如果您没有更新本地代码,并且您希望将 GitLab 仓库回退到指定版本,您可以使用以下命令:git fetchg...

html5+css3做的响应式企业网站前端源码

大家好,今天给大家介绍一款,html5+css3做的响应式企业网站前端源码 (图1)。送给大家哦,获取方式在本文末尾。首页banner幻灯片切换特效(图2)首页布局简约合理(图3)关于我们页面(图4)商品列表(图5)商品详情(图6)服务介绍(图7)新闻列表(图8)联系我们(图9)源码完整,需要的朋友...

Solid State Logic 发布低保真数字失真插件 Digicrush

Solid State Logic 宣布推出低保真数字失真插件 Digicrush ,他们最新的创意工具具有经典数字失真的粗糙、低保真特性,完美模拟早期数字音频的衰减和伪影。Digicrush 充满怀旧气息,深受经典数字采样器和效果器的影响,具有内置抖动、可调比特深度和采样率降低功能,是为音轨添加复...

多项修正 尼康D4s发布最新1.10版固件

尼康公司与2014年8月27日发布了D4s的最新固件,固件版本号为C:1.10。这次固件升级,主要解决了一些BUG,并且对拍摄菜单与相机操作做了一定调整。下面是本次新固件的具体信息:尼康发布D4s最新C固件 1.10版对C固件升级到1.10版所作的修改:当选定运动VR模式并换上 AF-S 尼克尔 4...