1、在集群模式下,Redis 的 Key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 Hash 算法吗? 答案跳转
2、使用Redis有哪些好处? 答案跳转
3、Redis相比Memcached有哪些优势? 答案跳转
Redis 支持复杂的数据结构
Redis 相比 Memcached 来说,拥有更多的数据结构,能支持更丰富的数据操作。如果需要缓存能够支持更复杂的结构和操作, Redis 会是不错的选择。
Redis 原生支持集群模式
在 redis3.x 版本中,便能支持 Cluster 模式,而 Memcached 没有原生的集群模式,需要依靠客户端来实现往集群中分片写入数据。
性能对比
由于 Redis 只使用单核,而 Memcached 可以使用多核,所以平均每一个核上 Redis 在存储小数据时比 Memcached 性能更高。而在 100k 以上的数据中,Memcached 性能要高于 Redis,虽然 Redis 最近也在存储大数据的性能上进行优化,但是比起 Remcached,还是稍有逊色。
Tip:其实面试官这么问,是想看你知道为啥用这个技术栈么?你为啥选这个技术栈,你是否做过技术选型的对比,优缺点你是否了解,你啥都不知道,只是为了用而用,那你可能就差点意思了。
4、Redis常见性能问题和解决方案。 答案跳转
5、MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?答案跳转
6、在什么样的场景下可以充分的利用Redis的特性,大大提高Redis的效率?
答案: 在合适的场景下使用合适的类型
string 简单的 kv缓存
hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某 个字段
list 粉丝,关注,收藏,类似微博分页,分页查询
set 查看共同好友,
sorted set 排行榜
7、Redis的缓存雪崩、穿透、击穿了解么?有什么异同点?分别怎么解决? 答案跳转
8、Redis的基本类型有哪些?他们的使用场景了解么?比较高级的用法你使用过么?
答案:
string 简单的 kv缓存
hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以就操作hash里的某 个字段
list 粉丝,关注,收藏,类似微博分页,分页查询
set 查看共同好友,
sorted set 排行榜
高级用法:答案跳转
9、Redis主从怎么同步数据的? 答案跳转 集群的高可用怎么保证? 答案跳转
持久化机制了解么? 答案跳转
10、为什么 redis 单线程却能支撑高并发?
答案:
- 纯内存操作
- 核心是基于非阻塞的 IO 多路复用机制
- 单线程反而避免了多线程的频繁上下文切换问题
11、如何保证缓存和数据库数据的一致性? 答案跳转
12、项目中是怎么用缓存的,用了缓存之后会带来什么问题? 答案:数据一致问题