838ae124aa2bd21d2b93b2b7dd5539b1.gif

Redis号称支持并发11万读操作、并发8万写操作。由于优异的性能和方便的操作, Redis在国内各大公司都很热门,比如阿里、腾讯、字节跳动、百度、美团、小米等。

关于Redis的这8个经典面试题,你能答上来几个?

1、Redis 官方为什么不提供 Windows 版本?<Linux有话说>

因为目前 Linux 版本已经相当稳定,且Linux操作系统自带的epoll相关函数, 在高并发情况下性能一般比windows的select函数性能较好,为了高性能起见, Redis官网不提供windows 版本。

8b016edbd2c1ac3a9e3dfe3edf109018.png

2、使用Redis有什么缺点?

  • 缓存和数据库双写一致性问题

  • 缓存雪崩问题

  • 缓存击穿问题

  • 缓存的并发竞争问题

3、 Redis是单线程还是多线程?

回答: 主线程是单线程, 但6.0版本前后线程机制有做调整, 只要看懂下面这张图即可(看不懂没关系, 后面会讲到)

a673015a0346d86cff90c24b8e83a8ea.png

4、MySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据?

非常简单, 当Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。

5、Redis过期策略和内存淘汰机制?

正解: Redis采用的是定期删除+惰性删除策略。

6、Redis 的持久化底层如何实现的?有什么优点缺点? 

RDB: 在不同的时间点将 redis 的数据生成的快照同步到磁盘等介质上):内存到硬盘的快照,定期更新。 缺点:耗时,耗性能(fork+io 操作),易丢失数据。  AOF: 将 redis 所执行过的所有指令都记录下来,在下次 redis 重启时,只需要执行指令就可以了):写日志。 缺点:体积大,恢复速度慢。 Redis4.0 之后有了混合持久化的功能,将 bgsave 的全量和 aof 的增量做了融合处理,这样既保证了恢复的效率又兼顾了数据的安全性。

7、什么是缓存穿透?如何解决缓存穿透问题?

缓存穿透是指查询一个一定不存在的数据,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到 DB 去查询,可能导致 DB 挂掉。  穿透解决方案如下: 1.查询返回的数据为空,仍把这个空结果进行缓存,但过期时间会比较短; 2.布隆过滤器:将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个一定不存在的数据会被这个 bitmap 拦截掉,从而避免了对 DB 的查询。

8、Redis 常见的性能问题和解决方案

这个你能答上来吗?
Redis也是大厂面试最爱问的,除了上面这些问题,还包括Redis客户端、Redis高级功能、Redis持久化和开发运维常用问题探讨、Redis复制的原理和优化策略、Redis分布式解决方案等。

为了让大家理解透彻Redis,我特别邀请可“手写Redis”前阿里资深架构师James老师,为大家带来 《Redis销魂操作实战系列课程,原价199元,公众号粉丝限时专享优惠价0.1元!带你从入门到BAT各种应用场景Redis设计,深度掌握Redis核心技能,快速进阶成为Redis专家! 

511f8726d7192999a68912fd91af333d.png

1 作者介绍

James老师:前阿里资深架构师,腾讯认证高级讲师;

技术格言:听James两节课,胜过加2个月班,没有听不懂的学生,只有不会教的老师。

2 适合人群

本次课程偏原理和源码,需要有一定Java基础,适合:

  • 具备Java基础;

  • 具备一定自学能力;

  • 想了解Redis的小伙伴;

  • 立志成为高级工程师、架构师的IT人;

3 课程福利 1:0.1元秒杀redis系列课程 2:提供学习直播+预习资料+源码+答疑  3: 今天加入额外再赠送一份目前最“火”的 《Java面试通关手册》V6.0版本; 368bbb453a6fc1a1237de21e16ba555b.png 这套面试手册的组成内容主要有以下3大主题,5个主要模块,35个小板块:

程序员面试题集JAVA核心面试题库(1000+题.pdf)JAVA常见面试题库(3000+题.pdf)BATJ JAVA经典必考面试题库(50+题.pdf)互联网一线大厂面试题库(300+题.pdf)百度篇京东篇腾讯篇头条篇美团篇华为篇滴滴篇........Java各知识点综合面试题(5000+题.pdf)并发编程多线程集合框架设计模式数据库性能优化RabbitMQ消息中间件ActiveMQ消息中间件DubboJVMKafkaMongoDBMyBatisMySQLNettyNginxRedisTomcatZookeeperSpringSpringBootSpringCloudSpringMVC...

程序员必备书单(海量典藏版)

1b756d3c86d49598cba774c20ee1230e.png 程序员 简历模 板 (900份) f69fd7a328641602130ca70cc3aa196e.png

b2ad855c5a8793ecda5fe0d51b2e89a4.png

发送暗号“666” 给小姐姐,秒通过

Logo

更多推荐