高频问题:Redis有哪些数据结构?分别适合什么场景?
回答模板:
基础结构(必答):
场景举例(体现实战能力):
ZINCRBY
更新分数,ZREVRANGE
获取Top10;HSET user:1001 name "Alice"
),减少Key数量。底层优化(展示深度):
高频问题:RDB和AOF的区别?如何选择?
回答策略:
核心区别:
选型建议(体现决策能力):
appendfsync everysec
),从节点开RDB;实战坑点:
aof_rewrite_in_progress
,限制重写频率。高频问题:如何保证Redis高可用?
回答框架:
方案对比(清晰分层):
集群原理(展示技术深度):
CRC16(key) % 16384
计算槽位;实战经验(加分项):
redis-cli --cluster reshard
平滑扩容,解决数据倾斜问题。高频问题:如何解决缓存穿透?
回答技巧:
穿透 vs 击穿 vs 雪崩(先澄清概念):
解决方案(分层递进):
SET null 5s
);tryLock
) + 逻辑过期时间;扩展思考(体现架构能力):
n=元素数量, p=误判率 → m=-n*lnp/(ln2)^2
。高频问题:如何用Redis实现分布式锁?
回答模板:
基础方案(必答):
SET lock_key uuid NX EX 30
(原子性加锁+过期时间);if redis.call("get",KEYS[1])==ARGV[1] then return redis.call("del",KEYS[1])
)。进阶方案(展示知识面):
陷阱规避(体现严谨性):
高频问题:Redis单线程为什么性能高?
回答策略:
核心原因(分层回答):
瓶颈分析(展示辩证思维):
KEYS *
);io-threads 4
),命令执行仍单线程。优化案例:
高频问题:如何定位Redis性能问题?
回答框架:
工具链(体现专业性):
slowlog get
:分析慢查询(阈值slowlog-log-slower-than
);redis-cli --bigkeys
:找出大Key;INFO memory
:监控内存碎片率(mem_fragmentation_ratio > 1.5
需重启)。优化手段:
allkeys-lfu
适合高频访问场景)。实战案例:
本文由 https://www.dblens.com 知识分享, dblens for MySQL - 免费的MySQL管理工具。