Redis是一款高性能、非关系型的内存数据存储系统,被广泛应用于缓存、会话管理、队列等场景。在BAT等公司的面试中,通常会涉及Redis相关的问题,以下是一些常见的Redis基础知识问题:
- Redis的数据类型有哪些?
答:Redis支持字符串、哈希、列表、集合、有序集合等多种数据类型。
2.Redis支持的持久化方式有哪些?
答:Redis支持RDB持久化和AOF持久化两种方式。其中,RDB持久化是将数据写入磁盘文件,而AOF持久化是将Redis执行的每条写命令追加到文件末尾。
3.Redis的主从复制原理是什么?
答:Redis的主从复制采用异步复制的方式,主节点将数据异步地发送给从节点。在复制过程中,主节点将所有写命令记录到内存中的缓冲区,然后将缓冲区中的命令发送给从节点,从节点接收到命令后执行并返回结果给主节点。
4.Redis如何实现分布式?
答:Redis可以通过分片和集群两种方式来实现分布式。分片是将数据分散到多个Redis节点上,每个节点存储部分数据,从而达到分布式存储的效果。集群则是通过将多个Redis节点组合在一起,形成一个逻辑集群,实现分布式的存储和计算。
5.Redis的过期策略是什么?
答:Redis支持两种过期策略:惰性删除和定期删除。惰性删除是指当访问一个已经过期的键时,Redis才会将该键删除;定期删除则是通过Redis定期检查键的过期时间,删除过期的键。
6.如果有大量的key需要设置同一时间过期,一般需要注意什么?
如果大量的key过期时间设置的过于集中,到过期的那个时间点,redis可能会出现短暂的卡顿现象。严重的话会出现缓存雪崩,我们一般需要在时间上加一个随机值,使得过期时间分散一些。
购物首页经常会使用定时任务刷新缓存,可能大量的数据失效时间都十分集中,如果失效时间一样,又刚好在失效的时间点大量用户涌入,就有可能造成缓存雪