面试官:大量请求 Redis 不存在的数据,从而影响数据库,该如何解决?

vivian1年前 ⋅ 1214 阅读

这应该是一个很多人都会遇到的问题把?

解决办法:使用 布隆过滤器、布谷鸟过滤器,原理结构如图

 

https://mp.weixin.qq.com/s?__biz=MzI1NDQ3MjQxNA==&mid=2247501177&idx=1&sn=bbaab99beaf72f3ac5ef11a28e0ca88d&chksm=e9c63cc8deb1b5de0bafda07850b4ceb52fffbe7523d3f1ceb8a28d203686bef9220d1c79adf&scene=21

java版实现 https://github.com/MGunlogson/CuckooFilter4J golang实现 https://github.com/seiflotfy/cuckoofilter 用过Bloom Filter,后者没用过 布隆过滤器会产生误判的,这个场景是否会导致很多真实请求得不到正确响应数据呢?毕竟在实际请求redis之前都被BloomFilter拦截了。。 @thackeray 误判没关系,毕竟很多请求都被拦截下了,这大大减轻了db压力 如果系统跑久了,会出现BloomFilter里面写入的数据太多,导致误判率很高。 到时候你得改用Cuckoo filter,能删数据。

全部评论: 0

    相关推荐