面试题答案
一键面试方法一:布隆过滤器(Bloom Filter)
- 原理:布隆过滤器是一种概率型数据结构,它可以高效地判断一个元素是否存在于一个集合中。它通过多个哈希函数将元素映射到一个位数组的不同位置,然后将这些位置置为1。当判断一个元素是否存在时,检查这些位置是否都为1,如果有一个不为1,则元素一定不存在;如果都为1,则元素可能存在。
- 实现思路:
- 在数据库数据加载到缓存的同时,将数据的键值通过布隆过滤器进行处理,将对应位置置为1。
- 当有请求到来时,先通过布隆过滤器判断请求的数据是否可能存在。如果布隆过滤器判断不存在,则直接返回,不再访问数据库;如果判断可能存在,再去访问缓存和数据库。
方法二:缓存空值
- 原理:对于数据库中不存在的数据,在缓存中设置一个空值,这样后续相同的请求就不会穿透到数据库。
- 实现思路:
- 当请求访问缓存和数据库都未找到数据时,在缓存中设置一个空值,例如可以设置一个特殊的标识(如“null”),并设置一个较短的过期时间,防止占用过多缓存空间。
- 后续相同请求到来时,先访问缓存,若获取到空值标识,则直接返回,不再访问数据库。