redis学习总结(23)——redis如何实现故障自动恢复?浅析哨兵的工作原理

科技D人生 科技D人生     2022-12-30     342

关键词:

前言

Redis是如何实现故障自动恢复的,它的实现正是要基于之前所讲的数据持久化和数据多副本而做的。Redis作为非常火热的内存数据库,其除了具有非常高的性能之外,还需要保证高可用,在故障发生时,尽可能地降低故障带来的影响,Redis也提供了完善的故障恢复机制:哨兵。下面就来具体来看看Redis的故障恢复是如何做的,以及其中的原理。

部署模式

Redis在部署时,可以采用多种方式部署,每种部署方式对应不同的可用级别。

  • 单节点部署:只有一个节点提供服务,读写均在此节点,此节点宕机则数据全部丢失,直接影响业务
  • master-slave方式部署:两个节点组成master-slave模式,在master上写入,slave上读取,读写分离提高访问性能,master宕机后,需要手动把slave提升为master,业务影响程度取决于手动提升master的延迟
  • master-slave+哨兵方式部署:master-slave与上述相同,不同的是增加一组哨兵节点,用于实时检查master的健康状态,在master宕机后自动提升slave为新的master,最大程度降低不可用的时间,对业务影响时间较短

从上面几种部署模式可以看出,提高Redis可用性的关键是:多副本部署 + 自动故障恢复,而多副本正是依赖主从复制。

高可用做法

Redis原生提供master-slave数据复制,保

redis学习总结

Redis学习总结一:底层实现1.1.Redis速度快的原因1.2.sortedset有序是怎么实现的二:淘汰策略三:持久化方案四:缓存雪崩五:缓存穿透六:缓存击穿一:底层实现Redis支持五种数据类型:string(字... 查看详情

redis学习总结

Redis学习总结一:底层实现1.1.Redis速度快的原因1.2.sortedset有序是怎么实现的二:淘汰策略三:持久化方案四:缓存雪崩五:缓存穿透六:缓存击穿一:底层实现Redis支持五种数据类型:string(字... 查看详情

redis学习总结

1.redis客户端连接命令   redis-cli-hhost-pport-apassword2.springboot中连接redis的主要类   JedisConnectionFactory3.redis和memcached对比   1Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。   2Redis支持数据... 查看详情

redis学习总结(21)——redis持久化是如何做的?rdb和aof对比分析(代码片段)

前言Redis要想实现高可用,主要有以下方面来保证:数据持久化主从复制自动故障恢复集群化Redis的高可用保障的基础:数据持久化。因为Redis的主从复制和自动故障恢复,都需要依赖Redis持久化相关的东西。同时,Redis的数据持... 查看详情

redis学习---面试基础知识点总结

【学习参考】https://www.toutiao.com/i6566017785078481422/https://www.toutiao.com/i6563232898831352323/0.redis是什么?redis是nosql(也是个巨大的map)单线程,但是可处理1秒10w的并发(数据都在内存中)使用java对redis进行操作类似jdbc接口标准对mysql,有... 查看详情

《redis设计与实现》(1-5)个人学习总结(代码片段)

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书。目录前言第1章:引言第2章简单动态字符串2.1SDS的定义2.2SDS与C字符串的区别2.2.1常数复杂度获取字符串长... 查看详情

redis学习总结(22)——redis的主从复制是如何做的?复制过程中也会产生各种问题?(代码片段)

前言如果Redis的读写请求量很大,那么单个实例很有可能承担不了这么大的请求量,如何提高Redis的性能呢?你也许已经想到了,可以部署多个副本节点,业务采用读写分离的方式,把读请求分担到多个副本节点上,提高访问性... 查看详情

五分钟读完权威书籍的redis事务_学习总结(代码片段)

前言Redis在项目实际开发中,经常会使用到的中间件。作为缓存数据的工具,就必然会有保证数据原子性的问题,那么我们今天就来谈谈Redis的事务吧。文章主体脉络:Redis事务要解决的问题?→Redis事务的简单... 查看详情

博学谷学习记录超强总结,用心分享|springcache常用注解介绍+集成redis

SpringCache缓存框架实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。SpringCache缓存框架实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功... 查看详情

redis学习总结

Redis学习总结一:底层实现1.1.Redis速度快的原因1.2.sortedset有序是怎么实现的二:淘汰策略三:持久化方案四:缓存雪崩五:缓存穿透六:缓存击穿一:底层实现Redis支持五种数据类型:string(字... 查看详情

redis学习笔记23——旁路缓存:redis是如何工作的?(代码片段)

计算机系统中,默认有两种缓存:CPU里面的末级缓存,即LLC,用来缓存内存中的数据,避免每次从内存中存取数据;内存中的高速页缓存,即pagecache,用来缓存磁盘中的数据,避免每次从磁盘中... 查看详情

redis学习笔记23——旁路缓存:redis是如何工作的?(代码片段)

计算机系统中,默认有两种缓存:CPU里面的末级缓存,即LLC,用来缓存内存中的数据,避免每次从内存中存取数据;内存中的高速页缓存,即pagecache,用来缓存磁盘中的数据,避免每次从磁盘中... 查看详情

redis学习与总结(代码片段)

前言本文为学习Redis的一个总结,包含了资料的整理,Redis的介绍,常用数据类型,常用命令,多数据库与事务的特性以及持久化的概述;如何在Linux上部署,以及使用Java客户端开发工具包来连接使用Redis,并记录了常见的问题,... 查看详情

redis核心技术与实战:学习总结目录

本文是我学习极客时间《Redis核心技术与实战》的学习总结,涵盖了数据结构与基础使用、高可靠性与高性能、使用规范等几个主要的主题,助你构建Redis的知识体系。本文是我学习极客时间《Redis核心技术与实战》的学习总结,... 查看详情

redis学习总结(上)——redis数据类型配置文件jedis(代码片段)

Redis学习总结(上)——Redis数据类型、配置文件、Jedis一、Redis的概述二、Redis的安装、启动与关闭三、Redis数据库相关指令四、Redis的常用数据类型4.1String数据类型4.2List数据类型4.3set数据类型4.4Hash数据结构4.5Zset数据类型... 查看详情

kubernetes学习总结(27)——kubernetes安装redis集群的两个方案(代码片段)

一、自定义yaml文件安装背景在Kubernetes中部署Redis集群面临挑战,因为每个Redis实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色。为此,需要结合使用KubernetesStatefulSets和PersistentVolumes实现。Redis集群... 查看详情

[redis]redis日常学习总结一(代码片段)

一 Redis使用bitset(bitmap)来统计日活跃量1 BitMap介绍  Bitmap(即Bitset),是一串连续的2进制数字(0或1),每一位所在的位置为偏移(offset),bitmap就是通过最小的单位bit来进行0或者1的设置,表示某个元素对应的值或者状态。... 查看详情

《redis设计与实现》(16-21)个人学习总结(代码片段)

注明:《Redis设计与实现》的个人学习总结,这本书对redis的讲解清晰易懂,如果深入学习可以看看这本书目录第16章Sentinel16.1启动并初始化Sentinel16.1.1初始化服务器16.1.2使用Sentinel专用代码16.1.3初始化Sentinel状态16.1.4初... 查看详情