1. 简单地说一说 Redis 的主从。 主从是指一台 Redis 做 master,在 master 下面挂 n 个 slave,master 用来写数据,写完同步到 slave 上,slave 用来读数据。Redis 主从主要有两种种模式:
2. Redis 主从复制的原理是什么?
3. Redis 集群有哪些方案?
4. 你是如何处理双写一致性问题的 双写一致性是指数据库数据与 Redis 中数据的一致性问题。一般是先写数据库,再写 Redis,不过这样会有问题,假如写完数据库,还没来得及更新 Redis 的时候,请求进来了,读取到的就是 Redis 中的旧数据。可以采用双删延迟策略来处理双写一致性问题。具体流程:
休眠一段时间再删的目的是,假如请求 A 进来先删了 Redis 中的数据,然后再还没来得及更新数据库的时候,请求 B 进来了,读取到的是数据库的旧数据;接着请求 A 更新完了 DB,再删 Redis;然后请求 B 再把读取到的旧数据写到 Redis 中,这样还是会导致数据库和 Redis 数据不一致。休眠一段时间就可以保证请求 B 能把读取数据库和写 Redis 的步骤执行完,执行完后请求 A 再去删 Redis,就可以把 Redis 中的旧数据删除。 所以休眠的时间应该大于请求 B 读数据库和写 Redis 的总时间。如果不是要求强一致性,不推荐这种做法,休眠一段时间体验不太好。
5. 如何处理并发竞争 key 的问题?
6. 什么是缓存雪崩?如何解决?
7. 什么是缓存穿透?如何解决?
8. 什么是缓存击穿?如何解决?
9. 如何在一亿个 key 中找出指定前缀的 key?