【面试宝典】redis常见面试题总结(上)

news/2024/9/23 10:43:13/

redis_1">一、为什么使用 redis

使用缓存的目的就是提升读写性能。为了提高读写性能,带来更高的并发量。减少对 MySQL 的请求量。

redis__5">二、redis 有哪些好处?

  • 读写速度快,因为数据存储在内存中,所以数据获取快。
  • 支持多种数据结构。包括字符串、列表、集合、有序列表、哈希等。
  • 支持事务,且操作遵守原子性,即对数据的操作要麽都执行、要麽都不执行。
  • 还支持队列、主从复制、集群、数据持久化等功能。

redis__memcache__12">三、redis 和 memcache 区别

  • redis 和 memcache 都是将数据存储到内存中,都是内存数据库。
  • memcache 仅支持 key-value 结构的数据类型。redis 支持多种数据类型:string、hash、set、zset、list 等等。
  • redis 当物理内存用完时,可以将一些很久没用的 value 交换到磁盘。
  • memcache 可以利用 magent 做出一主多从;redis 也可以做一主多从。
  • memcache 挂掉之后数据就没有了;redis 可以定期保存数据到磁盘。
  • memcache 单个 value 最大 1M; redis 的单个最大时 512M.
  • memcache 挂掉之后数据不能恢复;redis 数据丢失后可以通过 aof 或者 rdb 恢复。
  • memcache 网络 IO 模型是多线程,非阻塞 IO 复用的网络模型,原型上接进 nginx。redis 使用单线程的 IO 复用模型。

四、为什么单线程效率还那么高?

  • c 语言编写,效率高
  • 存内存操作
  • 基于非阻塞IO复用模型机制
  • 单线程避免了多线程上下文切换问题
  • 丰富的数据结构

redis__31">五、redis 的同步机制了解是什么?

redis 支持主从同步、从从同步。如果是第一次进行主从同步,主节点需要使用 bgsave 命令,再将后续修改操作记录到内存的缓冲区,等 RDB 文件全部同步到复制节点,复制节点接受完成后将 RDB 镜像加载到内存中。等加载完成后,复制节点通知主节点将复制期间修改的操作记录同步到复制节点,即可完成同步过程。

redis__35">六、对 redis 事务的理解

1、什么是 redis 事务?原理是什么?

redis 中的事务是一组命令的集合,是 redis 的最小执行单位。它可以保证一次执行多个命令,每个事务是一个单独隔离的操作。事务中的所有命令都会序列化、按顺序执行。服务端再执行事务的过程中,不会被其他客户端发来的命令请求打断。

2、redis 事务的注意点?

  • redis 事务不支持回滚,不像 MySQL 的事务一样,要么都执行要么都不执行。
  • redis 服务端在执行事务的过程中,不会被其他客户端发来的命令请求打断,直到事务命令全部执行完毕才会执行其他客户端的命令。

redis__bigkey__46">七、redis 如果存储了 bigkey 会存在什么影响?

  • 网络阻塞:获取 bigkey,传输的数据量大,会增加带宽的压力。
  • 超时阻塞:因为 bigkey 占用的空间大,所以操作起来效率低,导致出现阻塞的可能性增大。
  • 导致内存空间不平衡:一个 bigkey 存储量比较大,同一个 key 在同一个节点或服务器中存储,会造成一定影响。

八、缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

1、缓存雪崩

缓存雪崩是在同一时间大量的 key 过期,导致所有的请求直接访问数据库。对数据库的 CPU 和内存造成了巨大压力,严重的会造成数据库宕机。

解决方案:最简单的处理方案是将缓存失效时间分开。

2、缓存穿透

缓存穿透是指用户请求数据,在数据库中没有,自然缓存中也没有,就会导致会直接查询数据库,数据库中也没有就会返回null.

解决方案:采用布隆过滤器。

3、缓存预热

缓存预热是将一些需要缓存的数据通过接口或者页面实现存储缓存中。


http://www.ppmy.cn/news/1512608.html

相关文章

90. UE5 RPG 实现技能的装配

在上一篇里,我们实现了在技能面板,点击技能能够显示出技能的相关描述以及下一级的技能的对应描述。 在这一篇里,我们实现一下技能的装配。 在之前,我们实现了点击按钮时,在技能面板控制器里存储了当前选中的技能的相关…

安科瑞ASCP210-40D 灭弧式短路保护器 防止电线失火的保护装置

电气防火限流式保护器可有效克服传统断路器、空气开关和监控设备存在的短路电流大、切断短路电流时间长、短路时产生的电弧火花大,以及使用寿命短等弊端,发生短路故障时,能以微秒级速度快速限制短路电流以实现灭弧保护,从而能显著…

linux被植入木马排查思路

linux被植入木马排查思路 一、是否侵入检查 1)检查系统登录日志 last命令 2)检查系统用户 1、检查是否有异常用户 cat /etc/passwd 2、查看是否产生了新用户、uid和gid为0的用户 grep "0" /etc/passwd 3、查看passwd的修改时间&#xf…

CRYPTO 2020

分类文章编号安全模型1-6公钥加密,功能加密,见证加密7-12后量子密码13-20密码分析21-31最佳论文32-34多方安全计算35-49真实应用50-55零知识证明56-62格和相关难题63-68泄露和外包加密69-74非交互式零知识证明,共识和延迟函数75-79构建80-85Security Models 1. Handling Ad…

C++学习笔记----3、设计专业的C++程序(四)---- 重用既有代码(重用代码类型)

在分析重用代码的优劣之前,把可重用代码进行分类,并且起个名字是非常有帮助的,工欲成其事,必先利其器,而这个器叫什么名字我们都还没有确定,恐怕很难继续进行下去吧。有dgtk3sk重用的代码: 过去…

技术速递|将 .NET Aspire 添加到您现有的 .NET 应用程序中

作者:Jon Galloway 排版:Alan Wang .NET Aspire 是一个针对 .NET 的新型云就绪堆栈,可帮助开发人员快速轻松地开发分布式应用程序。您可能已经看过一些演示,展示了大型 .NET 解决方案,其中充满了复杂的云依赖项&#x…

SAP Parallel Accounting(平行分类账业务)配置及操作手册【适用于多国家会计准则】

1. 配置准备 1.1 理解平行账概念 平行账,也称为多分类账,是SAP系统中的一项功能,它允许企业按照不同的会计准则来维护各自的财务数据。这种设置特别适用于那些需要符合多种会计准则的跨国公司。通过平行账,企业可以在不同的分类…

继电器介绍及qt操作继电器实战

一.继电器基础介绍 32路继电器通常用于自动化控制系统中,能够同时控制多达32个不同的电气设备。以下是对32路继电器的一些详细介绍: 1. 基本概念 继电器:一种电气控制装置,当输入信号(通常是电流或电压)…