概述

  1. redis是什么?
  2. 常见的数据结构及应用场景
  3. mysql不行吗,为什么要用redis?
  4. 为什么不用map/guava做缓存,而用redis?
  5. memcached和redis区别,优势
  6. 缓存中常说的热点数据和冷数据是什么?
  7. 分布式Redis是前期做还是后期规模上来了再做好?为什么?
  8. Redis是单线程的,如何提高多核CPU的利用率?
  9. 怎么保证缓存和数据库数据的一致性?
  10. 数据为什么会不一致?
  11. hash冲突怎么办?
  12. 单副本与多副本都是什么?
  13. Redis常用的客户端有哪些?
  14. redis如何做内存优化?
  15. 常见的数据优化方案你了解吗?
  16. 介绍以下redis自研

    线程模型

  17. 单线程为什么这么快?

  18. 为什么要用单线程?redis的线程模型是什么?
  19. 为什么引入多线程?模型是什么?性能效果?线程安全问题?
  20. 和memcached的多线程模型对比?
  21. Redis对于大量的请求,是怎样处理的?

    缓存

  22. 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存击穿、缓存降级都是什么,如何解决?

    持久化

  23. Redis如何做持久化的?能说一下RDB和AOF的实现原理吗?

  24. 什么是RDB快照?RDB生成期间,可以同时处理写请求吗?
  25. 如何实现数据尽可能少丢失又能兼顾性能呢?

    内存淘汰机制

  26. Redis内存淘汰策略有哪些?

    高可用

  27. 什么是Redis主从复制?

  28. 由于主从延迟导致读取到过期数据怎么处理?
  29. 主从复制的过程中如果因为网络原因停止复制了会怎么样?
  30. Redis主从架构数据会丢失吗,为什么?
  31. 哨兵机制介绍下?原理是什么?
  32. 推选主节点的标准是什么?
  33. 同步配置的时候其他哨兵根据什么更新自己的配置呢?
  34. 为什么Redis哨兵集群只有2个节点无法正常工作?
  35. 高可用怎么实施?
  36. cluster集群的原理
  37. 为什么是16384?
  38. Redis cluster中是如何实现数据分布的?这种方式有什么优点?
  39. 哈希槽又是如何映射到 Redis 实例上呢?

    事务机制

  40. 事务机制介绍一下

  41. redis事务是原子性的吗?
  42. redis为什么不支持回滚roll back?
  43. 列举以下事务失败的场景
  44. redis事务相关命令有哪些?
  45. 事务ACID
  46. 事务的其他实现

    分布式锁

  47. 什么是分布式锁? 为什么要有?特点?

  48. 常见的分布式锁有哪些解决方案?
  49. redis分布式锁怎么实现介绍下? 可能会出现什么问题?
  50. redlock红锁原理

    过期

  51. Redis的过期键的删除策略

  52. 通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
  53. Redis key的过期时间和永久有效分别怎么设置?
  54. 定期和惰性一定能保证删除数据吗?如果不能,Redis会有什么应对措施?
  55. 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?使用keys指令会有什么影响?
  56. 如果有大量的key需要设置同一时间过期,一般需要注意什么?
  57. 如何解决Redis的并发竞争Key问题 ?

    分区

  58. 介绍下分区技术,为什么要有分区,优势和不足在哪里

  59. 分区常用方法
  60. 分区实现方案有哪些?