SpringCloud分布式微服务高频面试题!!!

1.什么是Redis持久化?简述rdb和aof的比较。

Redis持久化是指将Redis中的数据保存到硬盘上,以便在Redis重启时可以恢复数据。Redis提供了两种持久化方式:RDB(Redis Database)和AOF(Append Only File)。 RDB持久化是将Redis的数据快照以二进制形式保存到硬盘上。它是通过fork子进程来完成的,先将当前内存中的数据写入临时文件,然后替换原来的文件,实现快照。RDB持久化的优点是生成的文件较小,恢复速度快,适合用于备份和灾难恢复。缺点是在发生故障时可能会丢失一部分数据。 AOF持久化是通过将Redis的写操作追加到文件末尾来实现的。它将每个写操作都记录下来,当Redis重启时,通过重新执行这些写操作来恢复数据。AOF持久化的优点是可以保证数据的完整性,即使发生故障也可以尽量减少数据的丢失。缺点是生成的文件较大,恢复速度相对较慢。 RDB和AOF持久化可以同时开启,也可以根据实际需求选择其中一种。在开启了AOF持久化的情况下,Redis重启时会优先使用AOF文件进行数据恢复,如果AOF文件不存在或损坏,则使用RDB文件进行恢复。通过选择适合的持久化方式,可以根据实际需求平衡数据的持久化和性能的考虑。

2.简要概述什么是Redis的缓存穿透、缓存雪崩、缓存击穿? 

  • 缓存穿透:当一个请求查询一个不存在于缓存中的数据时,由于缓存无法命中,请求会直接访问数据库。如果恶意攻击者大量发送不存在的请求,会导致大量请求直接访问数据库,增加数据库的负载。这种情况被称为缓存穿透。
  • 缓存雪崩:当缓存中的大量数据同时过期或者缓存服务器宕机,导致大量请求直接访问数据库。这种情况下,数据库会承受巨大的压力,严重影响系统的性能和稳定性。这种现象被称为缓存雪崩。
  • 缓存击穿:当一个高并发的请求查询一个缓存中不存在的数据,此时缓存失效,请求会直接访问数据库。由于请求量很大,数据库可能会受到巨大压力,导致数据库性能下降。不同于缓存穿透的是,缓存击穿是因为某个热点数据失效导致的,而不是恶意攻击。 为了解决这些问题,可以采取以下措施:
  • 缓存穿透:可以在查询时进行合法性校验,如果查询的数据不存在,则将空结果缓存一段时间,避免大量无效请求直接访问数据库。
  • 缓存雪崩:可以采用多级缓存、设置不同的缓存过期时间、使用热点数据预加载等方式来分散缓存过期时间,减轻缓存雪崩的影响。
  • 缓存击穿:可以采用互斥锁、设置热点数据永不过期、使用限流措施等方式来避免缓存击穿的发生。

 3.Redis的哨兵机制的作用是什么?(6分)

Redis的哨兵机制是为了增加Redis的高可用性而引入的一种机制。它的主要作用有以下几点:

  1. 监控:哨兵会定期检查Redis主节点和从节点的状态,以保证节点的正常运行。它会检测节点是否宕机、网络是否正常、节点是否正常复制等。
  2. 自动故障转移:当主节点宕机或发生其他故障时,哨兵会自动将从节点中的一个升级为新的主节点。它会通过选举算法选择一个最适合的从节点作为新的主节点,并将其他从节点重新配置为复制该新的主节点。
  3. 故障恢复:当主节点恢复正常后,哨兵会将它重新配置为从节点,并将之前的新主节点重新配置为它的从节点,实现主从节点切换的恢复。
  4. 配置中心:哨兵可以作为Redis的配置中心,负责维护Redis集群的配置信息。它会监控节点的变化,并在有变化时通知其他Redis客户端更新配置。 通过哨兵机制,可以实现Redis的自动故障转移和故障恢复,提高Redis的可用性和稳定性。它能够保证Redis集群在主节点故障时能够自动切换,并在主节点恢复时能够自动恢复原来的配置。这样可以避免单点故障,提供更可靠的服务。

 4.ElasticSearch中的倒排索引是什么?(6分)

倒排索引(Inverted Index)是Elasticsearch中用于快速搜索的核心数据结构之一。它是一种将文档中的每个词(term)与包含该词的文档进行关联的索引结构。 在传统的正向索引中,我们通过文档ID来查找对应的词,但在倒排索引中,我们通过词来查找对应的文档ID。这种倒排的结构使得搜索引擎能够快速地定位包含某个词的文档。 具体来说,倒排索引由两个主要的部分组成:词项词典࿰

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值