前言
之前虽然看了不少redis的书籍,但是由于实际项目中应用的场景比较少,加上缺少归纳总结,时间一长,看的很多东西都忘记了(哎,年龄大了,记忆越来越不行了,吐槽)。 怎么办呢,采用问答的方式重新对之前看的一些知识做一下梳理,会不会理解的更深刻点?鉴于此,本文主要是(从网上)收集罗列一下redis被问到的常见问题,(可能有重复)在后面的文章中再针对这些问题结合自己的理解一一解答。当然个人理解不一定完全正确,欢迎一起沟通讨论。
redis 常见问题:
- Redis有哪些数据结构?
- 使用过Redis分布式锁么,它是什么回事?
- 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
- 使用过Redis做异步队列么,你是怎么用的?
- 如果有大量的key需要设置同一时间过期,一般需要注意什么?
- Redis如何做持久化的?
- Pipeline有什么好处,为什么要用pipeline?
- Redis的同步机制了解么?
- 是否使用过Redis集群,集群的原理是什么?
- Redis有哪几种数据淘汰策略?
- MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
- 怎么理解Redis事务?
- redis 有哪些适用场景?
- 为什么使用 Redis?
- 使用 Redis 有什么缺点?
- 单线程的 Redis 为什么这么快?
- Redis 的数据类型,以及每种数据类型的使用场景?
- Redis 的过期策略以及内存淘汰机制?
- Redis 和数据库双写一致性问题?
- 如何应对缓存穿透和缓存雪崩问题?
- 如何解决 Redis 的并发竞争 Key 问题?
- ...
后记
后面会针对上面罗列的这些问题,结合自己的学习理解,采用每篇文章解答1-3个问题方式做一系列的分享。通过文问答的形式加深对redis的理解。