用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Oracle
›
Redis干系面试
Redis干系面试
大连密封材料
论坛元老
|
2025-1-11 08:28:12
|
显示全部楼层
|
阅读模式
楼主
主题
1689
|
帖子
1689
|
积分
5067
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
以下是一些在面试中关于 Redis 最常被问到的题目,涵盖了 Redis 的基础概念、数据结构、持久化、主从复制、哨兵、集群、应用场景以及常见的缓存题目等。可以根据自身实际项目经验,联合下面的要点举行深入讲授。
1. Redis 基础与特点
Redis 是什么?与 Memcached 相比有什么优点?
Redis 是一个基于内存的高性能键值对(Key-Value)数据库;
支持多种数据结构(String、List、Hash、Set、ZSet 等),功能比 Memcached 更丰富;
提供持久化、发布订阅、Lua 脚本、事务等特性;
官方性能测试可达 10 万级 QPS。
Redis 有哪些常见应用场景?
缓存热点数据,降低数据库访问压力;
分布式锁;
排行榜、计数器;
消息队列(基于 List 实现)或发布/订阅系统;
会话缓存、购物车缓存等;
Geo/GIS 场景(从 3.2 开始支持)。
Redis 和数据库之间数据同等性如何保证?
一样寻常是
最终同等性
,在高并发场景下难以做到强同等;
常用策略:失效时回源 DB、定期更新/失效、分布式事务和谐等。
面试中可以谈本身的业务实际处理方式,比如双写、延迟双删策略等。
2. Redis 数据类型与用法
Redis 有哪些常见数据类型?对应的使用场景是什么?
String
:最常用的数据结构,常作为缓存、计数器(incr、decr)。
Hash
:存储对象的属性信息,节省内存(雷同于小型数据库表)。
List
:常用作队列、消息队列,Lpush/Rpop 实现先辈后出。
Set
:去重、交集并集等集合运算,常用于共同好友、共同关注等。
Sorted Set(ZSet)
:在 Set 的基础上增加了分数排序,可做排行榜、优先级队列。
Redis 过期键删除策略有哪些?
定期删除
:默认每隔 100ms 随机抽取一些设置了过期时间的 key,查抄并删除过期键。
惰性删除
:在访问 key 时,假如发现过期则删除并返回空。
需要注意过期键太多时可能造成过期浪涌等性能题目,需要做好参数调优和限流。
3. Redis 持久化机制
Redis 提供了哪些持久化方式?
RDB(Redis DataBase)
:将内存数据在某个时间点天生快照,生存在磁盘上;
AOF(Append Only File)
:以追加的方式记载服务器实行的写下令日志。
RDB 和 AOF 的区别?各自的优缺点?
RDB
:
优点:得当做备份、规复;文件小;对性能影响较小;
缺点:可能丢失最后一次快照之后的数据。
AOF
:
优点:数据安全,丢数据风险更低;
缺点:文件体积比 RDB 大,规复速度相对慢,对性能有一定影响。
Redis 怎么做数据规复?
先看有无可用的 AOF 文件,用 AOF 文件规复更安全;
如无 AOF 或 AOF 不可用,则使用最新的 RDB 文件规复;
AOF 重写
:在文件过大时会触发重写,天生新的 AOF 文件,以制止过大的日志文件影响性能。
4. Redis 主从复制与高可用
Redis 主从复制原理?
从库启动时向主库发送 PSYNC 下令;
主库会在内存天生 RDB 并发送给从库,同步完成后再将新操纵的下令流继续发送给从库;
实现数据的最终同等。
Redis 哨兵(Sentinel)机制?
哨兵是一个独立进程,用于监控 Redis 实例的运行状态;
发现主库宕机后,哨兵会自动在从库中推举新的主库并完成主从切换;
在高可用架构中,哨兵一样寻常与 Redis 实例一同部署,通过投票机制实现自动故障转移(Failover)。
Redis Cluster 集群模式?
将数据分片存储到多个节点,每个节点对应一部分哈希槽(hash slot),共 16384 个槽;
节点之间互相通讯,通过 Gossip 协议交换元数据信息,自动发现和故障转移;
制止了单点瓶颈,提供了更高的扩展性和可用性。
Redis Cluster 如何实现数据分片?
使用同等性哈希的思想,将 key 的 CRC16 校验值对 16384 取模,得到对应槽位,映射到指定节点;
每个节点负责一部分槽位区间。
5. Redis 性能与并发
Redis 的单线程模子为什么依然很快?
焦点数据结构操纵都是在内存中举行;
使用 I/O 多路复用,非壅闭事件驱动;
单线程制止了线程切换和加锁开销。
Redis 如何在并发场景下使用?会不会壅闭?
固然 Redis 焦点处理下令是单线程,但网络 I/O 在多路复用的管理下可并行处理毗连;
整个下令实行队列是串行的,极大地简化了并发访问时的锁冲突题目;
当下令实行耗时过长(如大操纵)确实会壅闭后续下令,需要对大操纵举行拆分。
Redis Pipeline(管道)机制是什么?
一次性发送多条下令到服务器,减少网络往返,进步吞吐量;
固然减少了 RTT(网络延迟),但不改变下令的实际实行顺序,也不保证原子性。
6. 分布式锁与其他高级特性
Redis 分布式锁如何实现?
最简单的方式:SET key value NX EX <expireTime>,当返回 OK 期间表获取到锁;
释放锁时,需要先判断 value 是否与自身匹配;
可能出现锁失效或非原子化操纵题目,官方提供了 Redlock 算法来增强可靠性。
Redis 事务和 Lua 脚本
事务:通过 MULTI、EXEC、WATCH 等下令实现,MULTI 下令之后全部下令会被放入队列,直到 EXEC 时一次性实行;
Lua 脚本:将逻辑打包成脚本在服务端原子实行,减少网络开销,并保证脚本实行的原子性。
Redis 发布/订阅(Pub/Sub)如何使用?
通过 PUBLISH、SUBSCRIBE 下令实现消息广播;
得当实时消息推送,不得当数据落盘(消息持久化),消息丢失后无法规复。
7. 常见的缓存题目
什么是缓存穿透、缓存击穿、缓存雪崩?怎么解决?
缓存穿透
:访问大量不存在的数据,每次都会绕过缓存查询数据库。
解决方案:布隆过滤器、空值缓存。
缓存击穿
:热点 key 在某个时间点失效,大量请求直击后端数据库。
解决方案:设置互斥锁或提前续期热点 key。
缓存雪崩
:大面积 key 同一时间失效,导致系统压力骤增。
解决方案:随机过期时间、分散过期;多级缓存;限流、降级步伐。
Redis 的镌汰策略有哪些?
noeviction
:克制驱逐,内存满了直接报错;
allkeys-lru
:对全部键使用 LRU 算法举行镌汰;
allkeys-random
:对全部键随机镌汰;
volatile-lru
:只对设置了过期时间的键使用 LRU 镌汰;
volatile-random
:只对设置了过期时间的键随机镌汰;
volatile-ttl
:优先镌汰剩余生存时间(TTL)最短的键。
8. 其他常见题目
Redis 的内存模子和内存管理
底层接纳自定义内存分配器或 libc 分配器;
可以设置 maxmemory,超事后按设置的镌汰策略举行移除;
注意差别数据类型对内存的占用方式,比如 Hash 可以使用 ziplist(压缩列表)优化小数据量占用空间。
Redis 热点 Key 如何优化?
接纳
拆分
:对特定热点 key 举行分片;
通过
本地缓存
或
多级缓存
方式降低访问量;
思量使用队列、限流、锁等本领削峰。
如何监控 Redis ?
Redis 提供 INFO 下令可查看内存、毗连、流量、持久化等指标;
也可通过第三方监控系统(Prometheus + Grafana)或官方 Redis-Monitor 工具;
监控下令相应时间、CPU、内存、带宽、毗连数以及主从、哨兵状态等。
如何举行 Redis 的性能压测?
使用官方提供的 redis-benchmark 工具;
或在实际项目中以压测工具(JMeter、LoadRunner 等)模拟真实场景;
重要观察 QPS、相应时间、下令耗时分布等。
总结
Redis 的面试题通常围绕
原理、数据结构、持久化、主从复制/集群、缓存题目
以及
实际应用场景
展开。面试中除了把握理论知识点外,还需联合自身项目的实践案例,比如:
在什么场景下用 Redis 做缓存,如何筹划过期策略;
如何处理缓存和数据库数据同等性题目;
如何在高并发下保证 Redis 的稳定和高可用;
如何优化大数据量操纵等。
有针对性地根据面试岗位需求(如高可用、分布式锁、消息系统等方面)举行重点预备,可以在面试中更好地显现本身的能力与经验。祝面试顺遂!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
大连密封材料
论坛元老
这个人很懒什么都没写!
楼主热帖
Kubernetes(k8s)基础概念介绍 ...
Fastjson反序列化
【游戏客户端与服务器面试题】-- 2022 ...
这是啥SQL,室友看了人傻了
Java EnumMap putAll()方法具有什么功 ...
python带你采集商家商品数据信息~带你 ...
rk3399pro移植openharmony3.0移植笔记2 ...
太厉害了,终于有人能把文件上传漏洞讲 ...
SqlServer对表的基本操作
java中如何将函数作为参数传递呢? ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
MES
虚拟化与私有云
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表