介绍:Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API的非关系型数据库。
传统数据库遵循 ACID 规则。而 Nosql(Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称) 一般为分布式而分布式一般遵循 CAP 定理。
一、概述
- 什么是Redis
- Redis有哪些优缺点
- 为什么要用Redis /为什么要用缓存
- 为什么要用Redis而不用map/guava做缓存?
- Redis为什么这么快
二、数据类型
- Redis有哪些数据类型
- Redis的应用场景
三、持久化
- 什么是Redis持久化?
- Redis的持久化机制是什么?各自的优缺点?
- 如何选择合适的持久化方式
- Redis持久化数据和缓存怎么做扩容?
四、过期键的删除策略
- Redis的过期键的删除策略
- Redis key的过期时间和永久有效分别怎么设置?
- 我们知道通过expire来设置key的过期时间,那么对过期的数据怎么处理呢?
五、内存相关
- MySQL里有2000w数据,redis中只存20w的数据, 如何保证redis中的数据都是热点数据
- Redis的内存海汰策略有哪些
- Redis主要消耗什么物理资源?
- Redis的内存用完了会发生什么?
- Redis如何做内存优化?
六线程模型
- Redis线程模型
七.事务
- 什么是事务?
- Redis事务的概念
- Redis事务的三个阶段
- Redis事务相关命令
- 事务管理(ACID)概述
- Redis事务支持隔离性吗
- Redis事务保证原子性吗,支持回滚吗
- Redis事务其他实现
八集群方案
- 哨兵模式.
- 官方Redis Cluster 方案(服务端路由查询)
- 基于客户端分配
- 基于代理服务器分片
- Redis主从架构
- Redis集群的主从复制模型是怎样的?
- 生产环境中的redis是怎么部署的?
- 说说Redis哈希椿的概念?
- Redis集群会有写操作丢失吗?为什么?
- Redis集群之间是如何复制的?
- Redis集群最大节点个数是多少?
- Redis集群如何选择数据库?
九、分区
- Redis是单线程的,如何提高多核CPU的利用率?
- 为什么要做Redis分区?
- 你知道有哪些Redis分区实现方案?
- Redis分区有什么缺点?
十、分布式问题
- Redis实现分布式锁
- 如何解决Redis的并发竞争Key问题
- 分布式Redis是前期做还是后期规模上来了再做好?为什么?
- 什么是RedLock
十一、缓存异常
- 缓存雪崩
- 缓存穿透
- 缓存击穿
- 缓存预热
- 缓存降级
- 热点数据和冷数据
- 缓存热点key
十二、常用工具
- Redis支持的Java客户端都有哪些?官方推荐用哪个?
- Redis和Redisson有什么关系?
- Jedis与Redisson对比有什么优缺点?
十三、其他问题
- Redis与Memcached的区别
- 如何保证缓存与数据库双写时的数据一致性?
- Redis常见性能问题和解决方案?
- Redis官方为什么不提供Windows版本?
- 一个字符串类型的值能存储最大容量是多少?
- Redis如何做大量数据插入?
- 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- 使用Redis做过异步队列吗,是如何实现的
- Redis如何实现延时队列
- Redis回收进程如何工作的?
- Redis回收使用的是什么算法?
写在最后
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
最后再分享的一些BATJ等大厂19、20年的面试题,把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,上面只是以图片的形式给大家展示一部分。点击这里免费获取
Mybatis面试专题 MySQL面试专题 并发编程面试专题
网友评论