Redis手动failover

本文介绍redis主从环境下的手工failover操作及排错过程,实现主实例宕机的时候,将从实例提升为主实例,继续写入数据;等到原主实例恢复后,同步原从实例上的数

本文介绍redis主从环境下的手工failover操作及排错过程,实现主实例宕机的时候,将从实例提升为主实例,继续写入数据;等到原主实例恢复后,同步原从实例上的数据完成后,恢复初始的主从实例角色!

环境介绍
操作系统版本均为:rhel5.4 64bit
redis版本:2.6.4
redis实例端口均为:6379
redis实例密码均为:123
主实例为server11(192.168.1.112)
从实例为server12(192.168.1.113)

一:未配置持久化情况下的手工切换
1:正常情况下,server11为主实例,server12为从实例,数据同步正常

2:当主实例挂掉的时候,从实例可以正常查询,但无法写入数据

3:将从实例提升为主实例,从而实现数据写入

4:主实例恢复后尝试从server12实例上获取最新的数据,实际测试表明这种方法不可行,最终导致server11和server12的数据不一致,如果强行恢复初始实例角色,免备案空间,则会导致数据丢失

二:开启从实例快照持久化下的测试
1:恢复原测试环境后,开启从实例的快照持久化,因为是测试环境,所以设置60秒内如果有1条数据变更则保持一次快照

2:写入测试数据主从环境数据是否同步正常

剪刀手 剪刀手

全自动AI剪辑神器:日剪千条AI原创视频,零非原创风险,批量高效制作引爆流量!免费体验,轻松上手!

剪刀手 35 查看详情 剪刀手

3:模拟主实例宕机,香港服务器,香港服务器,手动将从实例提升为主实例,继续写入新数据

4:原主实例恢复后的数据同步及角色复原,这里同步数据采取将从实例的快照文件复制到主实例的方式实现

后续扩展:本文实现的failover过程,到从实例提升到主实例阶段都是可以通过部署keepalive自动实现的,在最后原主实例数据同步和角色复原可以通过shell脚本来调度,下篇文章中将对此进行详细的介绍!
 

本文出自 “斩月” 博客,谢绝转载!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/525474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月9日 07:50:30
下一篇 2025年11月9日 07:51:08

相关推荐

  • php数据库如何实现数据缓存 php数据库减少查询压力的方案

    答案:PHP结合Redis等内存缓存系统可显著提升Web应用性能。通过将用户信息、热门数据等写入内存缓存并设置TTL,先查缓存未命中再查数据库,减少数据库压力;配合OPcache提升脚本执行效率,文件缓存适用于小型项目,数据库缓冲池优化和读写分离进一步提升性能,推荐Redis为主并防范缓存穿透与雪崩…

    2025年12月6日 后端开发
    000
  • win11提示“无法加载文件或程序集”错误怎么办_Win11文件或程序集无法加载修复方法

    首先运行SFC扫描修复系统文件,若无效则使用DISM修复系统映像,接着重装Visual C++运行库,再通过设置修复或重置出错应用,最后可手动替换并注册缺失的程序集文件。 如果您尝试在Windows 11系统中运行某个程序或打开文件时,收到“无法加载文件或程序集”的错误提示,则可能是由于系统文件损坏…

    2025年12月6日
    000
  • 如何在安装完成后优化缓存使用

    合理配置缓存策略可提升系统效率,需设置适宜的过期时间、选用多层存储介质并持续监控维护。 安装完成后优化缓存使用,关键在于合理配置缓存策略、选择合适的存储方式,并定期维护。以下是一些实用建议,帮助你提升系统或应用的缓存效率。 合理设置缓存过期时间 缓存的有效期直接影响数据的新鲜度和性能表现。设置过短会…

    2025年12月6日 数据库
    000
  • thinkphp队列任务不执行怎么解决

    答案是检查配置、推送、监听和执行环节。首先确认queue.php中驱动设置正确,如Redis或数据库配置无误;其次确保任务通过Queue::push正确推送到队列,并在对应存储查看记录;然后必须运行php think queue:work –daemon命令启动监听;最后检查fire方法…

    2025年12月6日 PHP框架
    000
  • PHP框架怎么使用缓存机制_PHP框架缓存驱动配置与数据缓存策略

    答案:现代PHP开发中,缓存通过减少数据库压力提升性能,主流框架如Laravel支持File、Redis、Memcached、Database等驱动,推荐生产环境使用Redis;合理设置过期时间、规范缓存键命名、条件性更新及分层缓存策略可优化性能,结合Cache::remember等方法实现高效数据…

    2025年12月6日 后端开发
    000
  • 使用PHP框架开发实时应用_基于Laravel的php框架怎么用的通信

    Laravel通过事件广播与WebSocket实现实时通信,1. 配置Redis或Pusher驱动并创建实现ShouldBroadcast接口的事件;2. 使用laravel/websockets扩展启动WebSocket服务器;3. 前端引入Laravel Echo连接本地WebSocket并监听…

    2025年12月6日 后端开发
    000
  • 如何在Laravel中实现缓存机制

    laravel的缓存机制用于提升应用性能,通过存储耗时操作结果避免重复计算。1. 配置缓存驱动:在.env文件中设置cache_driver,如redis,并安装相应扩展;2. 使用cache facade进行缓存操作,包括put、get、has、forget等方法;3. 使用remember和pu…

    2025年12月5日
    000
  • win8打开程序提示0xc000007b怎么办_win8程序0xc000007b错误解决方法

    首先重新安装Visual C++ Redistributable运行库,包括x86和x64版本;其次修复DirectX组件,更新至最新运行时;然后运行SFC扫描修复系统文件;最后手动注册vcruntime140.dll等关键DLL文件,每步完成后重启电脑测试程序。 如果您在Windows 8系统中尝…

    2025年12月5日
    000
  • Serverless架构下Workerman的无状态化改造方案

    在serverless架构下,workerman的无状态化改造可以通过以下步骤实现:1. 将workerman的逻辑拆分成独立的函数,如handleconnect、handlemessage和handleclose。2. 使用外部服务(如redis或dynamodb)存储状态信息。3. 采用事件驱动…

    2025年12月5日
    000
  • 应用程序发生异常0xc0000417怎么解决 5种解决方案揭晓

    方法一:重启系统并清理后台占用程序 有时候,出现“0xc0000417”错误只是因为系统临时资源冲突,尤其是在同时运行多个程序或后台任务过多的情况下。 1、先保存好当前的工作内容,然后重启计算机。 2、使用快捷键 Ctrl + Shift + Esc 调出任务管理器,查看正在运行的进程,关闭不必要的…

    2025年12月5日 电脑教程
    000
  • 电脑的dll文件丢失怎么恢复 一文教你快速恢复

    在使用计算机的过程中,不少用户可能会碰到类似的问题:启动某个程序或游戏时,系统弹出提示信息,例如“xxx.dll文件缺失”或“程序无法运行”。这类问题通常是由dll(动态链接库)文件被误删、损坏或丢失所引起的。本文将为你整理一套完整的应对策略,帮助你迅速找回丢失的dll文件,恢复正常系统运行。 一、…

    2025年12月5日 电脑教程
    000
  • 找不到Qt5Widgets.dll无法执行代码 解决方法推荐

    电脑在运行某些基于qt框架开发的应用程序时,可能会弹出提示:“无法找到qt5widgets.dll,代码执行无法继续。重新安装程序可能解决此问题。”这类错误通常由程序安装不完整、系统中关键dll文件丢失或环境变量配置异常引起,尤其在使用开源软件、跨平台工具或图形化界面应用时较为常见。本文将从三个实用…

    2025年12月5日 电脑教程
    000
  • 如何在Laravel中配置Redis缓存

    在laravel中配置redis缓存的核心步骤包括安装并运行redis服务、安装php扩展或composer包、配置.env文件和config/database.php、清除缓存。1. 安装redis服务器:使用系统包管理工具安装并启动redis服务;2. 安装php扩展或predis包:选择php…

    2025年12月5日
    000
  • 如何在Laravel中配置邮件发送服务

    laravel中配置邮件发送服务的核心是利用其邮件抽象层,通过修改.env文件和config/mail.php对接各种邮件服务商。1. 配置.env文件设置mail_mailer、mail_host、mail_port、mail_username、mail_password、mail_encrypt…

    2025年12月5日
    100
  • Java中如何实现限流 掌握流量控制

    在java中实现限流的方法主要包括计数器算法、滑动窗口算法、漏桶算法、令牌桶算法以及使用guava ratelimiter。1. 计数器算法通过设定时间窗口和请求数量进行限制,优点是实现简单,缺点是可能存在“突刺”问题;2. 滑动窗口算法将时间窗口细化,避免了“突刺”,效果更平滑但实现较复杂;3. …

    2025年12月5日 java
    000
  • PHP如何调用Scala代码 通过JVM桥接调用Scala程序的方法

    通过jvm桥接,php可调用scala代码,但需中间工具。具体步骤如下:1. 将scala代码编译为jar包,并确保类和方法为public;2. 部署javabridge到支持servlet的web服务器(如tomcat);3. 在php中配置java.inc并设置classpath以加载jar包;…

    2025年12月5日 后端开发
    000
  • 如何在Laravel中使用事件和监听器

    事件和监听器是laravel中实现松耦合的关键机制。1. 定义事件类如userregistered,封装发生的“事情”;2. 创建监听器如sendwelcomeemail,处理事件触发后的操作,并可异步执行;3. 在eventserviceprovider中注册事件与监听器的映射关系;4. 使用ev…

    2025年12月5日
    000
  • 如何在Laravel中配置队列工作器

    在laravel中配置队列工作器的核心步骤是设置队列驱动并启动监听进程,以提升应用性能和用户体验。1. 修改.env文件中的queue_connection变量,如设为redis以启用高性能队列;2. 配置redis连接信息确保其可用性;3. 使用php artisan queue:work命令启动…

    2025年12月5日
    100
  • 如何在Laravel中实现数据补全

    数据补全功能可在用户输入不完整信息时智能猜测并提供完整选项,laravel中可通过前后端协作实现:1.前端使用typeahead.js、select2或awesomplete监听输入框并发送ajax请求;2.后端创建路由和控制器接收输入值,用eloquent orm结合like或全文搜索技术查询数据…

    2025年12月5日
    000
  • 如何在Laravel中实现定时任务

    在laravel中实现定时任务,核心思路是利用框架的调度器集中管理任务,并通过服务器cron每分钟触发一次调度器执行。1. 创建命令:使用 php artisan make:command 生成命令类并编写业务逻辑;2. 注册任务:在 app/console/kernel.php 的 schedul…

    2025年12月5日
    000

发表回复

登录后才能评论
关注微信