很多人受限于公司规模,没有用过Redis!但是面试大中型互联网公司,Redis是个绕不过去的坎。
以下这些Redis相关的面试题,你看是不是很眼熟!
- Redis支持的数据类型?
- 什么是Redis持久化?Redis有哪几种持久化方式?优缺点是什么?
- Redis 有哪些架构模式?讲讲各自的特点
- Redis主从是怎么选取的redis插槽的分配?
- Redis主节点宕机了怎么办,还有没有同步的数据怎么办?
- Redis集群的话数据分片怎么分,然后就是如果并发很高,几十万并发,可以做哪些优化?
- 怎么保证redis和db中的数据一致?
- 为什么Redis 单线程却能支撑高并发?
- 说说Redis的内存淘汰策略
- Redis的并发竞争问题如何解决?
或许很多人会说都能在网上搜到这些题的答案。
但是如果没有真正掌握,脱离了真实的生产环境,面试官问的稍微深入些,就会踩到很多坑!然后就没有然后了...
那么如何才能正确的掌握Redis呢?我建议你看看这份《Redis精品设计实战》文档,其目录大体如下:
- Redis简介
- 数据类型
- 事务
- 分布式锁
- 持久化
- 消息队列
- 高级数据结构
- 过期策略
- 内存淘汰策略
- 主从复制/哨兵/集群
- 配置文件
- 应用场景
- Lua脚本
- 与DB保持一致
- 源码
Redis数据类型
- String
- Hash
- List
- Set
- Sorted set
Redis事务
- MULTI&EXEC(原子执行,并非互斥)
- WATCH&UNWATCH(原子执行+乐观锁)
分布式锁
- 排他锁 SETNX
- 带有超时特性的锁
Redis持久化
- RDB(Redis Database,全量模式)
- AOF(Append Only File,增量模式)
- RDB最佳策略
- AOF最佳策略
消息队列
高级数据结构
- BitMap(String的一些其他命令)
- GEO
过期策略+内存淘汰策略
- 定时删除
- 惰性删除
- 定期删除
主从复制/哨兵/集群
- 主从复制(数据是同步的,类似于MySQL Replication)
- 哨兵 sentinel(数据是同步的)
- 集群(数据是分片的,sharing)
- Codis
- twemproxy
配置文件/应用场景/Lua脚本/与DB保持一致
Redis源码解读
- 线程模型——单线程
- RedisObject
思维导图
以上的知识点都已整理成册,均收集在了这份《Redis精品设计实战》里,需要这份文档的朋友,麻烦帮忙点赞评论一下(可以帮助更多有需要的人看到)
快速入手通道:(点这里)下载!诚意满满!!!
Java面试精选题、架构实战文档传送门:https://docs.qq.com/doc/DRW1nUkdhZG5zeGVi
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer不断!!!
网友评论