Redis 那点破事 | 绝杀面试官 25 问!

5fcc8bbed444d17aa4a8f73b705943ec.png

若有收获,请记得分享和转发哦

为了便于大家查找问题,了解全貌,整理个目录,我们可以快速全局了解关于Redis 缓存,面试官一般喜欢问哪些问题?

接下来,我们逐条来看看每个问题及答案

Redis 有哪些特性?

答案:

  • 性能高, 读的速度是100000次/s,写的速度是80000次/s

  • 数据持久化,支持RDB 、AOF

  • 支持事务。通过MULTIEXEC指令包起来。

  • 多种数据结构类型

  • 主从复制

  • 其他特性:发布/订阅、通知、key过期等

Redis 为什么这么快?

答案:

  • 完全基于内存,没有磁盘IO上的开销,异步持久化除外

  • 单线程,避免多个线程切换的性能损耗

  • 非阻塞的IO多路复用机制

  • 底层的数据存储结构优化,使用原生的数据结构提升性能。

Redis 那点破事 | 绝杀面试官 25 问!_第1张图片

Redis 那点破事 | 绝杀面试官 25 问!_第2张图片

Redis 那点破事 | 绝杀面试官 25 问!_第3张图片

Redis 那点破事 | 绝杀面试官 25 问!_第4张图片

Redis 那点破事 | 绝杀面试官 25 问!_第5张图片

Redis 那点破事 | 绝杀面试官 25 问!_第6张图片

Redis 那点破事 | 绝杀面试官 25 问!_第7张图片

Redis 那点破事 | 绝杀面试官 25 问!_第8张图片

Redis 那点破事 | 绝杀面试官 25 问!_第9张图片

Redis 那点破事 | 绝杀面试官 25 问!_第10张图片

Redis 那点破事 | 绝杀面试官 25 问!_第11张图片

  • 支持副本机制,有效的保证了高可用性。

如何实现一个分布式锁?

答案:

  • 1、数据库表,性能比较差

  • 2、使用Lua脚本 (包含 SETNX + EXPIRE 两条指令)

  • 3、SET的扩展命令(SET key value [EX][PX] [NX|XX])

  • 4、Redlock 框架

  • 5、Zookeeper Curator框架提供了现成的分布式锁

你可能感兴趣的:(数据结构,数据库,redis,java,缓存)