Redis 高频面试题汇总

Redis高频面试题汇总(2024最新版) 由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份PDF文档,这份文档还包括了还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!如果你觉得这些内容对你有帮助,可以扫码获取!! 阅读详情

🎈每日定期分享 | 面试求职经验 | 个人成长

开篇寄语

面试不必死记硬背,带着GPT去面试简直降维打击!

 

为您推荐一款颠覆性的GPT面试助手软件:“会议面试精灵”。这款工具能够实时分析语音内容、智能识别面试问题并生成精准答案,让您轻松应对八股文题目,从容处理各类复杂面试问题。

毕竟八股文在工作中很少使用,仅作为面试的筛选工具,不值得投入过多的精力。

 

如何获取“会议面试精灵”?
- 搜索引擎中输入关键词:“会议面试精灵”(记得加上双引号)进行搜索。

- 直接访问下载链接:https://www.interviewpass.fun


目录

一、Redis数据结构相关

1.Redis 支持的数据类型

二、Redis事务

1.什么是事务

2.为什么redis事务不具备原子性

3. Redis 事务相关命令有哪些?

三、Redis持久化和缓存管理

1.Redis持久化是什么?

2.Redis 持久化机制有哪些?

3.Redis 持久化机制 AOF 和 RDB 有什么区别?

4.RDB和AOF 持久化机制的优缺点

5.Redis 淘汰策略有哪些?

6.Redis 缓存失效策略有哪些?

四、Redis缓存异常方案

1.缓存雪崩

1.1、什么是缓存雪崩?

1.2、有什么解决方案来防止缓存雪崩?

2.缓存预热

2.1.什么是缓存预热

2.2.有什么解决方案?

3.缓存穿透

3.1、什么是缓存穿透?

3.2、有什么解决方案来防止缓存穿透?

4.缓存降级

5.1、什么是缓存击穿?

5.2、会带来什么问题

5.3、如何解决

5.3.1.使用互斥锁(mutex key)

5.3.2."永远不过期"

5.3.3.缓存屏障

五、Redis集群架构

1.实现主从复制的两种方式

1.1slaveof命令

1.2.redis.conf配置文件配置

2.复制过程了解吗,讲一讲

3.redis的主从结构

4.什么是Redis 慢查询?怎么配置?

5.Redis 有哪些架构模式?讲讲各自的特点


一、Redis数据结构相关

1.Redis 支持的数据类型

String字符串

**格式:**set key value string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。

Hash(哈希)

格式: hmset name key1 value1 key2 value2 Redis hash 是一个键值(key=>value)对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。

List(列表)

Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边) **格式:**lpush name value 在 key 对应 list 的头部添加字符串元素 **格式:**rpush name value 在 key 对应 list 的尾部添加字符串元素 **格式:**lrem name index key 对应 list 中删除 count 个和 value 相同的元素 **格式:**llen name
返回 key 对应 list 的长度

Set(集合)

**格式:**sadd name value Redis的Set是string类型的无序集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

zset(sorted set:有序集合)

**格式:**zadd name score value Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。

 

 

二、Redis事务

1.什么是事务

Redis 中的事务是一组命令的集合,是 Redis 的最小执行单位,一个事务要么都执行,要么都不执行。带有以下三个重要的保证:

  1. 批量操作在发送 EXEC 命令前被放入队列缓存。
  2. 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。
  3. 在事务执行过程,其他客户端提交的命令请求不会插入到事务执行命令序列中。

Redis 事务的原理是先将属于一个事务的命令发送给 Redis,然后依次执行这些命令。

2.为什么redis事务不具备原子性

单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。 事务可以理解为一个打包的批量执行脚本,但批量指令并非原子化的操作,中间某条指令的失败不会导致前面已做指令的回滚,也不会造成后续的指令不做。

3. Redis 事务相关命令有哪些?

**DISCARD:**取消事务,放弃执行事务块内的所有命令。 **EXEC:**执行所有事务块内的命令。 **MULTI:**标记一个事务块的开始。 **WATCH:**Redis Watch 命令用于监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断 **UNWATCH :**取消 WATCH 命令对所有 key 的监视。

三、Redis持久化和缓存管理

1.Redis持久化是什么?

用一句话可以将持久化概括为:将数据(如内存中的对象)保存到可永久保存的存储设备中。 持久化的主要应用是将内存中的对象存储在数据库中,或者存储在磁盘文件中、 XML 数据文件中等等。 也可以从如下两个层面来理解持久化: **应用层:**如果关闭( Close )你的应用,然后重新启动则先前的数据依然存在。 **系统层:**如果关闭( Shut Down )你的系统(电脑),然后重新启动则先前的数据依然存在。

2.Redis 持久化机制有哪些?

Redis 提供两种方式进行持久化。 **RDB 持久化:**原理是将 Reids 在内存中的数据库记录定时 dump 到磁盘上的 RDB 持久化。 **AOF(append only file)持久化:**原理是将 Redis 的操作日志以追加的方式写入文件。

3.Redis 持久化机制 AOF 和 RDB 有什么区别?

aof,rdb是两种 redis持久化的机制。用于crash后,redis的恢复。 rdb的特性如下:

  • fork一个进程,遍历hash table,利用copy on write,把整个db dump保存下来。
  • save, shutdown, slave 命令会触发这个操作。
  • 粒度比较大,如果save, shutdown, slave 之前crash了,则中间的操作没办法恢复。

aof有如下特性:

  • 把写操作指令,持续的写到一个类似日志文件里。(类似于从postgresql等数据库导出sql一样,只记录写操作)
  • 粒度较小,crash之后,只有crash之前没有来得及做日志的操作没办法恢复。

**两种区别就是,**一个是持续的用日志记录写操作,crash后利用日志恢复;一个是平时写操作的时候不触发写,只有手动提交save命令,或者是关闭命令时,才触发备份操作。 选择的标准,就是看系统是愿意牺牲一些性能,换取更高的缓存一致性(aof),还是愿意写操作频繁的时候,不启用备份来换取更高的性能,待手动运行save的时候,再做备份(rdb)。rdb这个就更有些 eventually consistent的意思了。

4.RDB和AOF 持久化机制的优缺点

RDB优点

  • RDB 是紧凑的二进制文件,比较适合备份,全量复制等场景
  • RDB 恢复数据远快于 AOF

RDB缺点

  • RDB 无法实现实时或者秒级持久化;
  • 新老版本无法兼容 RDB 格式。

AOF优点

  • 可以更好地保护数据不丢失;
  • appen-only 模式写入性能比较高;
  • 适合做灾难性的误删除紧急恢复。

AOF缺点:

  • 对于同一份文件,AOF 文件要比 RDB 快照大;
  • AOF 开启后,会对写的 QPS 有所影响,相对于 RDB 来说 写 QPS 要下降;
  • 数据库恢复比较慢, 不合适做冷备。

5.Redis 淘汰策略有哪些?

Redis的内存淘汰策略是指在Redis的用于缓存的内存不足时,怎么处理需要新写入且需要申请额外空间的数据。

Redis 的缓存淘汰策略有:

**noeviction:**当内存不足以容纳新写入数据时,新写入操作会报错。 **allkeys-lru:**当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。 **allkeys-random:**当内存不足以容纳新写入数据时,在键空间中,随机移除某个key。 **volatile-lru:**当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,移除最近最少使用的key。 **volatile-random:**当内存不足以容纳新写入数据时,在设置了过期时间的键空间中,随机移除某个key。

6.Redis 缓存失效策略有哪些?

定时过期策略

每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。

惰性过期策略

只有当访问一个key时,才会判断该key是否已过期,过期则清除。该策略可以最大化地节省CPU资源,却对内存非常不友好。极端情况可能出现大量的过期key没有再次被访问,从而不会被清除,占用大量内存。

定期过期策略

每隔一定的时间,会扫描一定数量的数据库的expires字典中一定数量的key,并清除其中已过期的key。该策略是前两者的一个折中方案。通过调整定时扫描的时间间隔和每次扫描的限定耗时,可以在不同情况下使得CPU和内存资源达到最优的平衡效果。

Redis中同时使用了惰性过期和定期过期两种过期策略。

所谓定期删除,指的是 redis 默认是每隔 100ms 就随机抽取一些设置了过期时间的 key,检查其是否过期,如果过期就删除。

 

假设 redis 里放了 10w 个 key,都设置了过期时间,你每隔几百毫秒,就检查 10w 个 key,那 redis 基本上就死了,cpu 负载会很高的,消耗在你的检查过期 key 上了。注意,这里可不是每隔 100ms 就遍历所有的设置过期时间的 key,那样就是一场性能上的灾难。实际上 redis 是每隔 100ms 随机抽取一些 key 来检查和删除的。

 

但是问题是,定期删除可能会导致很多过期 key 到了时间并没有被删除掉,那咋整呢?所以就是惰性删除了。这就是说,在你获取某个 key 的时候,redis 会检查一下 ,这个 key 如果设置了过期时间那么是否过期了?如果过期了此时就会删除,不会给你返回任何东西。

 

获取 key 的时候,如果此时 key 已经过期,就删除,不会返回任何东西。但是实际上这还是有问题的,如果定期删除漏掉了很多过期 key,然后你也没及时去查,也就没走惰性删除,此时会怎么样?如果大量过期 key 堆积在内存里,导致 redis 内存块耗尽了,咋整?

答案是:走内存淘汰机制。

四、Redis缓存异常方案

1.缓存雪崩

1.1、什么是缓存雪崩?

如果缓存集中在一段时间内失效,发生大量的缓存穿透,所有的查询都落在数据库上,造成了缓存雪崩由于原有缓存失效,新缓存未到期间所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力,严重的会造成数据库宕机。

举例来说, 我们在准备一项抢购的促销运营活动,活动期间将带来大量的商品信息、库存等相关信息的查询。 为了避免商品数据库的压力,将商品数据放入缓存中存储。 不巧的是,抢购活动期间,大量的热门商品缓存同时失效过期了,导致很大的查询流量落到了数据库之上。对于数据库来说造成很大的压力。

1.2、有什么解决方案来防止缓存雪崩?

1、加锁排队

mutex互斥锁解决,Redis的SETNX去set一个mutex key,当操作返回成功时,再进行加载数据库的操作并回设缓存,否则,就重试整个get缓存的方法

2、数据预热

缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题。用户直接查询事先被预热的缓存数据。可以通过缓存reload机制,预先去更新缓存,再即将发生大并发访问前手动触发加载缓存不同的key

3、双层缓存策略

C1为原始缓存,C2为拷贝缓存,C1失效时,可以访问C2,C1缓存失效时间设置为短期,C2设置为长期

4、定时更新缓存策略

实效性要求不高的缓存,容器启动初始化加载,采用定时任务更新或移除缓存

5、设置不同的过期时间,让缓存失效的时间点尽量均匀

2.缓存预热

2.1.什么是缓存预热

缓存预热就是系统上线后,将相关的缓存数据直接加载到缓存系统。这样就可以避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题。用户直接查询事先被预热的缓存数据。

如果不进行预热, 那么 Redis 初识状态数据为空,系统上线初期,对于高并发的流量,都会访问到数据库中, 对数据库造成流量的压力。

2.2.有什么解决方案?

  1. 数据量不大的时候,工程启动的时候进行加载缓存动作;
  2. 数据量大的时候,设置一个定时任务脚本,进行缓存的刷新;
  3. 数据量太大的时候,优先保证热点数据进行提前加载到缓存。

3.缓存穿透

3.1、什么是缓存穿透?

缓存穿透是指用户查询数据,在数据库没有,自然在缓存中也不会有。这样就导致用户查询的时候,在缓存中找不到对应key的value,每次都要去数据库再查询一遍,然后返回空(相当于进行了两次无用的查询)。这样请求就绕过缓存直接查数据库

3.2、有什么解决方案来防止缓存穿透?

1、缓存空对象

简单粗暴的方法,如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们仍然把这个空结果进行缓存,但它的过期时间会很短,最长不超过五分钟。

2、布隆过滤器

**优势:**占用内存空间很小,位存储;性能特别高,使用key的hash判断key存不存在 将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力

4.缓存降级

降级的情况,就是缓存失效或者缓存服务挂掉的情况下,我们也不去访问数据库。我们直接访问内存部分数据缓存或者直接返回默认数据。

举例来说:

对于应用的首页,一般是访问量非常大的地方,首页里面往往包含了部分推荐商品的展示信息。这些推荐商品都会放到缓存中进行存储,同时我们为了避免缓存的异常情况,对热点商品数据也存储到了内存中。同时内存中还保留了一些默认的商品信息。

降级一般是有损的操作,所以尽量减少降级对于业务的影响程度。

5.缓存击穿

5.1、什么是缓存击穿?

缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力

5.2、会带来什么问题

会造成某一时刻数据库请求量过大,压力剧增

5.3、如何解决

5.3.1.使用互斥锁(mutex key)

这种解决方案思路比较简单,就是只让一个线程构建缓存,其他线程等待构建缓存的线程执行完,重新从缓存获取数据就可以了。 如果是单机,可以用synchronized或者lock来处理,如果是分布式环境可以用分布式锁就可以了(分布式锁,可以用memcache的add, redis的setnx, zookeeper的添加节点操作)。 

5.3.2."永远不过期"

  1. 从redis上看,确实没有设置过期时间,这就保证了,不会出现热点key过期问题,也就是“物理”不过期。
  2. 从功能上看,如果不过期,那不就成静态的了吗?所以我们把过期时间存在key对应的value里,如果发现要过期了,通过一个后台的异步线程进行缓存的构建,也就是“逻辑”过期 

5.3.3.缓存屏障

该方法类似于方法一:使用countDownLatch和atomicInteger.compareAndSet()方法实现轻量级锁

五、Redis集群架构

1.实现主从复制的两种方式

1.1slaveof命令

  • 建立主从命令:slaveof ip port
  • 取消主从命令:slaveof no one

1.2.redis.conf配置文件配置

  • 格式:slaveof ip port
  • 从节点只读:slave-read-only yes #配置只读

2.复制过程了解吗,讲一讲

  1. 从节点执行 slaveof 命令。
  2. 从节点只是保存了 slaveof 命令中主节点的信息,并没有立即发起复制。
  3. 从节点内部的定时任务发现有主节点的信息,开始使用 socket 连接主节点。
  4. 连接建立成功后,发送 ping 命令,希望得到 pong 命令响应,否则会进行重连。
  5. 如果主节点设置了权限,那么就需要进行权限验证,如果验证失败,复制终止。
  6. 权限验证通过后,进行数据同步,这是耗时最长的操作,主节点将把所有的数据全部发送给从节点。
  7. 当主节点把当前的数据同步给从节点后,便完成了复制的建立流程。接下来,主节点就会持续的把写命令发送给从节点,保证主从数据一致性。

3.redis的主从结构

主从结构一是可以进行冗余备份,二是可以实现读写分离 主从复制 冗余备份(还可以称为:主从复制,数据冗余,数据备份,可以实现容灾快速恢复) 持久化保证了即使redis服务重启也会丢失数据,因为redis服务重启后会将硬盘上持久化的数据恢复到内存中,但是当redis服务器的硬盘损坏了可能会导致数据丢失,如果通过redis的主从复制机制就可以避免这种单点故障. 例如:我们搭建一个主叫做redis0,两个从,分别叫做redis1和redis2,即使一台redis服务器宕机其它两台redis服务也可以继续提供服务。主redis中的数据和从redis上的数据保持实时同步,当主redis写入数据时通过主从复制机制会复制到两个从redis服务上。 1.一个Master可以有多个Slave,不仅主服务器可以有从服务器,从服务器也可以有自己的从服务器 2.复制在Master端是非阻塞模式的,这意味着即便是多个Slave执行首次同步时,Master依然可以提供查询服务; 3.复制在Slave端也是非阻塞模式的:如果你在redis.conf做了设置,Slave在执行首次同步的时候仍可以使用旧数据集提供查询;你也可以配置为当Master与Slave失去联系时,让Slave返回客户端一个错误提示; 4.当Slave要删掉旧的数据集,并重新加载新版数据时,Slave会阻塞连接请求 读写分离 主从架构中,可以考虑关闭主服务器的数据持久化功能,只让从服务器进行持久化,这样可以提高主服务器的处理性能。从服务器通常被设置为只读模式,这样可以避免从服务器的数据被误修改。

4.什么是Redis 慢查询?怎么配置?

慢查询就是指,系统执行命令之后,计算统计每条指令执行的时间,如果执行时间超过设置的阈值,就说明该命令为慢指令。 Redis 慢查询配置参数为: slowlog-log-slower-than:设置慢查询定义阈值,超过这个阈值就是慢查询。单位为微妙,默认为 10000。 slowlog-max-len:慢查询的日志列表的最大长度,当慢查询日志列表处于最大长度的时候,最早插入的一个命令将从列表中移除。

5.Redis 有哪些架构模式?讲讲各自的特点

主从模式,一般是一个主节点,一或多个从节点,为了保证我们的主节点宕机后,数据不丢失,我们将主节点的数据备份到从节点,从节点并不进行实际操作,只做实时同步操作,并不能起到高并发的目的。

 

哨兵模式,一个哨兵集群和一组主从架构组成。比主从更好的是当我们的主节点宕机以后,哨兵会主动选举出一个主节点继续向外提供服务。

 

集群架构,由很多个小主从聚集在一起,一起向外提供服务的,将16384个卡槽切分存储,并不是一个强一致性的集群架构,每一个小主从节点内会存在选举机制,保证对外的高可用架构。

 

77道redis高频面试题汇总(带答案) 32、假如Redis里面有1亿个key,其中有10w个key 是以某个固定的已知的前缀开头的,如果将它们全部找出来?74、假如 Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?72、MySQL里有 2000w数据,Redis中只存20w 的数据,如何保证 Redis 中的教据都是热点数据?75、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?34、如果有大量的key需要设置同一时间过期,一般需要注意什么? 阅读详情

相关推荐

MySQL、Redis高频面试题汇总

3)采用单线程,避免了不必要的上下文切换和竞争条件,也不存在多进程或者多线程导致的切换而消耗 CPU,不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。3)缓存击穿,是指一个key非常热点,在不停的扛着大并发,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致。

悦分享 204

Redis高频面试题汇总

redis 的主从复制是设置一个主节点多个从节点 , 其中主节点负责写 , 从节点负责读哨兵模式本质上也是一个redis集群, 通常集群数为2n+1. 通过搭建哨兵集群并把绑定主从集群的主节点 , 哨兵集群可以实现, 当主节点宕机, 通过民主选举的模式自动选择出新的主节点, 当节点信息发生修改也可以发送信息进行通知哨兵模式的民主选举也就是通过raft算法, 民主投票的方式 当选票超过n/2+1时即可当选同时选举也会有一定的规则, 会通过节点断开时长, 节点offset偏移量大小, 节点权重等进行选举。

几许的博客 1861

Java面试题缓存技术总结:Redis高频考点汇总

前言 Java面试指导专栏有之前的20节扩展到了40节,因为感觉很多知识点和小伙伴分享 此外也想通过该专栏帮助更多人了解面试细节、谈薪细节、多维度分析总结下该方面的技能。 “~~社长”一个粉丝好友,粉丝团成员,谢谢对专栏进度监督,自然也感谢监督的同时不忘给5星好评,由于刚更新完企业登录相关的课程,该专栏的更新稍微延后了一点,抱歉了 网友评论 开始正常更新我们的专栏吧... 更新...

十年呵护的专栏 1170

【Java超高频面试题&缓存&redis】redis缓存相关高频面试题汇总

本期文章将汇总redis相关的高频面试题,给最近需要找工作的朋友们总结一波,帮助大家全面掌握redis的核心知识点,提升竞争力,为你的面试之旅保驾护航!

longshehui的博客 1013

【AI智能体】Coze 搭建个人旅游规划助手实战详解

本文将详细介绍如何使用Coze平台搭建个人旅游规划助手。首先概述了AI智能体如何简化传统复杂任务的开发流程,然后重点介绍了Coze工作流的作用和核心节点类型(包括大模型、插件、知识库等)。通过实际操作演示,从创建智能体到配置多级工作流,逐步实现旅游规划功能:解析用户输入时间地点、查询必玩景点、获取景点详细信息等。该教程展示了如何利用Coze的可视化编排能力,即使非技术人员也能快速构建专业级AI应用。最终呈现的旅游助手可提供天气查询、行程建议等一站式服务。

Hello, New World! 2112

一分钟学会MATLAB-数据清洗(含完整代码)

数据清洗是数据分析过程中的一个重要步骤,目的是提高数据的质量,以便进行更有效的分析。% 删除超出阈值的行。% 用线性插值填充缺失值。% 删除包含缺失值的行。% 找到缺失值的位置。% 可视化数据,识别异常值。缺失值是数据清洗中常见的问题。通过以上步骤,你可以有效地清洗数据,使其准备好进行后续的分析和建模。

2402_87132195的博客 3316

Redis高频面试题汇总(上)

redis相关面试问题,数据结构,sds,跳跃表,过期策略,持久化方式(rbd,aof)等等

qq_33129875的博客 1422

WVP+ZLM国标平台实战:从设备注册失败到视频播放黑屏,我遇到的5个典型问题与解法

部署WVP+ZLM国标视频平台时,设备注册失败、视频播放黑屏等问题常常让运维人员头疼不已。本文将基于真实运维场景,剖析五个最具代表性的故障案例,提供从网络配置到版本兼容性的全链路解决方案。

weixin_33178839的博客 361

Redis高频面试题汇总(2021最新版)

本文已收录于专栏 上千人点赞收藏,全套Redis高频面试题,大厂必备技能! 面试官心理分析 从面试官的角度分析,出这道题的目的是为了考察你对缓存的认知水平,以及结合缓存处理业务、改善架构的能力。这道题很明显是让你自由发挥,给了你引领面试官往自己最熟悉的知识点引导的机会,所以要尽可能的把握这次机会,给面试官一个好的印象。这道题聊得好,就是能深入交流个把小时了,如果是一面基本上能轻轻松松拿下。 但是千万不要上来就把话题聊死了,聊太浅了,那基本就是回去等通知了…… ​ 比如以下这种回答方式: ...

Java框架、并发编程、分布式、微服务、Redis、HarmonyOS、中间件等技术 2400

如何使用C#自带的GDI+双缓冲类BufferedGraphics实现双缓冲功能

小白摸索着编写一个上位机界面,将遇到的问题及解决方法记录下,以供后来的小白使用哈。这篇文章解决的问题是在绘图时候的闪烁问题。其中网上有些介绍的设置控制方式controlstyle的方法,这个方法我的理解是比较适合于在一个完整的窗口当中绘图。如果要在一个窗口当中的内部容器或者控件内画图的话就不太适合,通常按照前述的方法设置后没有任何效果。对于在窗口内部的绘图的来说,比较有效的方法是在内存当中开辟一块

z20110411的博客 4794

AGX Orin 部署PyTorch与Torchvision 2026避坑指南

本文提供了2026年在AGX Orin开发板上部署PyTorch与Torchvision的详细避坑指南。针对ARM64架构和JetPack 6.2系统,重点解决了Python 3.10环境配置、官方wheel包安装、torchvision源码编译等关键步骤,并分享了常见问题解决方案和性能优化技巧,确保深度学习环境稳定运行。

sky77的博客 752

Redis高频面试题汇总(中)

redis相关面试题,事务,集群,哨兵,cluster等等

qq_33129875的博客 2025

USB 基础学习:USB 电气信号介绍

USB电气信号技术解析 USB通信的核心是差分信号传输技术,通过D+和D-两根线传输相位相反的电压信号实现数据通信。USB信号系统包含三类关键信号:差分数据信号(抗干扰性强)、单端状态信号(用于设备识别)和电源信号(提供5V供电)。USB2.0采用400mV电压摆幅和NRZI编码,支持低速(1.5Mbps)至高速(480Mbps)传输;USB3.0则新增专用差分对,数据速率可达20Gbps。物理层通过上拉/下拉电阻检测设备连接,高速模式需特殊握手协议。抗干扰设计的关键在于保持差分线等长、阻抗匹配和使用共模扼

浩瀚之水的专栏 1782

Redis高频面试题汇总(下)

redis相关面试题,Big Key(大key)问题,缓存穿透,缓存击穿,缓存雪崩,数据库和缓存一致性

qq_33129875的博客 690

HiCMAE 论文复现:基于 RAVDESS 数据集的音视频情感识别

多模态情感识别是人工智能领域的重要研究方向,旨在通过结合多种感知模态(如音频、视频、文本等)来更准确地识别人类情感状态。与传统单模态方法相比,多模态方法能够利用不同模态间的互补信息,提高情感识别的鲁棒性和准确性。 RAVDESS(Ryerson Audio-Visual Database of Emotional Speech and Song)是一个常用的多模态情感识别数据集,包含24位专业演员(12名男性,12名女性)表达的8种情感状态(中性、平静、快乐、悲伤、愤怒、恐惧、厌恶和惊讶)的音视频数据。

max500600的博客 497

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Redis系列汇总,大厂Mysql高频面试题

同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。

m0_61408947的博客 994

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Redis高频面试题

Redis核心知识点摘要:Redis是基于内存的Key-Value数据库,支持字符串、哈希、列表等数据结构,适用于缓存、分布式锁等场景。其高性能源于内存操作、单线程模型和I/O多路复用。持久化提供RDB快照和AOF日志两种方式,集群通过哈希槽实现数据分片。内存管理采用惰性删除+定期删除策略,并提供多种淘汰机制。高级功能包括事务(不支持回滚)、分布式锁、订阅发布及Geo/HyperLogLog等特殊结构。使用需注意大key风险、网络优化及集群环境下的数据一致性。从Redis 6.0开始支持多线程I/O,但命令

阿登林的博客 785

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: 你只是想找适合自己的工作
下一篇: MongoDB 高频面试题
interviewpass
博客等级 码龄3年 521粉丝 39原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值