若有收获,请记得分享和转发哦
为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于Redis 缓存,面试官一般喜欢问哪些问题?
接下来,我们逐条来看看每个问题及答案
Redis 有哪些特性?
答案:
性能高, 读的速度是100000次/s,写的速度是80000次/s
数据持久化,支持RDB 、AOF
支持事务。通过
MULTI
和EXEC
指令包起来。多种数据结构类型
主从复制
其他特性:发布/订阅、通知、key过期等
Redis 为什么这么快?
答案:
完全基于内存,没有磁盘IO上的开销,异步持久化除外
单线程,避免多个线程切换的性能损耗
非阻塞的IO多路复用机制
底层的数据存储结构优化,使用原生的数据结构提升性能。
支持副本机制,有效的保证了高可用性。
如何实现一个分布式锁?
答案:
1、数据库表,性能比较差
2、使用Lua脚本 (包含 SETNX + EXPIRE 两条指令)
3、SET的扩展命令(SET key value [EX][PX] [NX|XX])
4、Redlock 框架
5、Zookeeper Curator框架提供了现成的分布式锁