概述
- redis是什么?
- 常见的数据结构及应用场景
- mysql不行吗,为什么要用redis?
- 为什么不用map/guava做缓存,而用redis?
- memcached和redis区别,优势
- 缓存中常说的热点数据和冷数据是什么?
- 分布式Redis是前期做还是后期规模上来了再做好?为什么?
- Redis是单线程的,如何提高多核CPU的利用率?
- 怎么保证缓存和数据库数据的一致性?
- 数据为什么会不一致?
- hash冲突怎么办?
- 单副本与多副本都是什么?
- Redis常用的客户端有哪些?
- redis如何做内存优化?
- 常见的数据优化方案你了解吗?
-
线程模型
单线程为什么这么快?
- 为什么要用单线程?redis的线程模型是什么?
- 为什么引入多线程?模型是什么?性能效果?线程安全问题?
- 和memcached的多线程模型对比?
-
缓存
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存击穿、缓存降级都是什么,如何解决?
持久化
Redis如何做持久化的?能说一下RDB和AOF的实现原理吗?
- 什么是RDB快照?RDB生成期间,可以同时处理写请求吗?
-
内存淘汰机制
-
高可用
什么是Redis主从复制?
- 由于主从延迟导致读取到过期数据怎么处理?
- 主从复制的过程中如果因为网络原因停止复制了会怎么样?
- Redis主从架构数据会丢失吗,为什么?
- 哨兵机制介绍下?原理是什么?
- 推选主节点的标准是什么?
- 同步配置的时候其他哨兵根据什么更新自己的配置呢?
- 为什么Redis哨兵集群只有2个节点无法正常工作?
- 高可用怎么实施?
- cluster集群的原理
- 为什么是16384?
- Redis cluster中是如何实现数据分布的?这种方式有什么优点?
-
事务机制
事务机制介绍一下
- redis事务是原子性的吗?
- redis为什么不支持回滚roll back?
- 列举以下事务失败的场景
- redis事务相关命令有哪些?
- 事务ACID
-
分布式锁
什么是分布式锁? 为什么要有?特点?
- 常见的分布式锁有哪些解决方案?
- redis分布式锁怎么实现介绍下? 可能会出现什么问题?
-
过期
Redis的过期键的删除策略
- 通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
- Redis key的过期时间和永久有效分别怎么设置?
- 定期和惰性一定能保证删除数据吗?如果不能,Redis会有什么应对措施?
- 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?使用keys指令会有什么影响?
- 如果有大量的key需要设置同一时间过期,一般需要注意什么?
-
分区
介绍下分区技术,为什么要有分区,优势和不足在哪里
- 分区常用方法
- 分区实现方案有哪些?