Redis的经典三问以及哨兵

2024-02-16 09:38
文章标签 redis 经典 哨兵 三问

本文主要是介绍Redis的经典三问以及哨兵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Redis的经典三问以及哨兵:

一、什么是Redis:
    Redis是由意大利人Salvatore Sanfilippo(塞尔瓦托·桑菲利波)开发的一款开源的基于内存的高速缓存处理器。Redis的全称是Remote Dictionary Server(远程字典/数据服务器),该软件是使用C语言进行编写的。Redis是一个key-value键值对存储的系统,它具有string、list、set、zset(sorted set)、hash等数据类型,同时还是一款NoSQL的可以持久化的数据库。

二、Redis特点:
    Redis是以内存作为存储介质,读写效率极高,它的读取速度可高达110000次/s,写速度高达81000次/s。
    Redis和memcache不同,存储在Redis中的数据是可以持久化的,断电或者重启,也不会丢失数据或丢失太多的数据。
    Redis的存储可以分为内存存储、磁盘存储(.rdb)以及log(AOF)文件存储。
    Redis支持主从模式(主少从多、读写分离(主写从读)、主写同步复制到从(主从同步)),可支持大型项目。
    redis的所有操作都是原子性,支持事务,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行。

三.Redis的应用场景:
    由于Redis数据的读和取操作都在内存当中操作,读写的效率极高,所以常常被用来做数据的缓存。把一些需要频繁访问的数据,而且极短时间之内不会发生变化的,放入Reids中进行操作。从而提高用户的请求速度和降低网站的负载,减少对数据库的访问次数。

四、哨兵

1.什么是哨兵?
    哨兵(sentinel)是一个分布式系统。用于对主从结构中每台服务器进行监控,当出现问题时通过投票的机制来选择新的master并将所有的slave连接到新的master上。
在这里插入图片描述
2.哨兵的作用?
    监控:不断的检查master和slave是否正常运行。master存活检测、master与slave运行情况。
    通知(提醒):当被监控的服务器出现问题时,向其他(哨兵间,客户端)发送通知。
    自动故障转移:断开master与slave连接,选取一个slave作为master,将slave连接到新的master,并告诉客户端新的服务器地址。
注意:哨兵也是一台Redis服务器,只是不提供数据服务,通常哨兵配置数量为单数,这样投票就不会打成平手。

一主二从三哨兵:

在这里插入图片描述
3.哨兵的优缺点?

优点:
    哨兵集群,基于主从复制模式,所有的主从配置的优点,它全具备。
    主从可以切换,故障可以转移,手动到自动,更加健壮。
缺点:
    实现哨兵模式的配置很麻烦。
    主从复制最大确点就是延迟,主写从备份,这个过程有一定的延迟。当系统繁忙的时候,延迟会更加的严重。从数机器数量的增加会使这个问题更加严重。

这篇关于Redis的经典三问以及哨兵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714164

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

Redis中使用布隆过滤器解决缓存穿透问题

一、缓存穿透(失效)问题 缓存穿透是指查询一个一定不存在的数据,由于缓存中没有命中,会去数据库中查询,而数据库中也没有该数据,并且每次查询都不会命中缓存,从而每次请求都直接打到了数据库上,这会给数据库带来巨大压力。 二、布隆过滤器原理 布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用多个不同的哈希函数将一个元素映射到一个位数组中的多个位置,并将这些位置的值置

HotSpot虚拟机的经典垃圾收集器

读《深入理解Java虚拟机》第三版笔记。 关系 Serial、ParNew、Parallel Scavenge、Parallel Old、Serial Old(MSC)、Concurrent Mark Sweep (CMS)、Garbage First(G1)收集器。 如图: 1、Serial 和 Serial Old 收集器 2、ParNew 收集器 3、Parallel Sc

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

laravel框架实现redis分布式集群原理

在app/config/database.php中配置如下: 'redis' => array('cluster' => true,'default' => array('host' => '172.21.107.247','port' => 6379,),'redis1' => array('host' => '172.21.107.248','port' => 6379,),) 其中cl

Redis的rehash机制

在Redis中,键值对(Key-Value Pair)存储方式是由字典(Dict)保存的,而字典底层是通过哈希表来实现的。通过哈希表中的节点保存字典中的键值对。我们知道当HashMap中由于Hash冲突(负载因子)超过某个阈值时,出于链表性能的考虑,会进行Resize的操作。Redis也一样。 在redis的具体实现中,使用了一种叫做渐进式哈希(rehashing)的机制来提高字典的缩放效率,避

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

Redis地理数据类型GEO

通常要计算两个地理位置的距离不是很方便,这里可以直接通过Redis提供的GEO操作来完成地理位置相关的计算 1)添加地理位置 语法:geoadd key longitude latitude member [longitude latitude member] ...字段说明:key:存放地理位置的集合名称longitude:地理坐标的经度latitude:地理坐标的纬度member:表示这

Redis-主从集群

主从架构 单节点Redis的并发能力是有上限的,要进一步提高Redis的并发能力,就需要搭建主从集群,实现读写分离。 主从数据同步原理 全量同步 主从第一次建立连接时,会执行全量同步,将master节点的所有数据都拷贝给slave节点,流程: 判断是否是第一次同步,如果是,返回版本信息(replication id 和offset),将salve节点的版本信息变为master的