原文链接:常见面试题
本文大纲与之类似,在其基础上加入了自己在实际项目中对部分知识点的理解
Q1:谈谈对redis的理解
Q2:谈谈实际应用中怎么用redis的
2.1 缓存
2.2 分布式锁
2.3 消息队列
Q3:redis的数据类型
Q4:持久化方式,各自优缺点,
Q5: RESP
Q6:Redis 有哪些架构模式?讲讲各自的特点
单体/主从/哨兵/codis/cluster
单体:小项目,
主从:生成日志文件,减少主节点写压力,最好树状结构
哨兵:监控,故障自动转移
https://www.cnblogs.com/leeSmall/p/8398401.html
codis/cluster:集群模式
Q7:缓存异常的情景
总原则:锁啥的尽量不用
7.1 穿透:
请求数据库不存在的数据。
7.2 雪崩:
集中写缓存导致集中过期,对数据库产生周期性的压力。非致命,致命的是缓存节点宕机。
7.3 击穿:
某个key很热点,过期的瞬间,大批量访问涌入直接访问数据库
Q8: 过期策略以及内存淘汰机制
定期删除,惰性删除
Q9:其他
9.1 del批量删除
技巧 DEL 命令的参数不支持通配符,但我们可以结合Linux 的管道和xargs 命令自己 实现删除所有符合规则的键。
比如要删除所有以“user:”开头的键,就可以执行redis-cli KEYS "user:*" | xargs redis-cli DEL。