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