主动更新策略
缓存问题及解决
布隆过滤出现哈希冲突解决方案:
-
选择合适的哈希函数:布隆过滤器的性能和哈希函数的选择密切相关。选择高效、低碰撞率的哈希函数可以降低误判率。通常使用的哈希函数有 MurmurHash、FNV 等。
-
合理设置过滤器大小:过滤器的大小(位数组的大小)会影响误判率。过小的过滤器容易发生冲突,增加误判率;过大的过滤器会增加内存消耗。因此,需要根据实际需求选择合适的过滤器大小。
-
合并多个哈希函数:可以使用多个独立的哈希函数来计算元素的哈希值,并将多个哈希值映射到位数组上。这样可以降低冲突的概率,减少误判率。
-
动态调整过滤器参数:根据实际使用情况,可以动态调整布隆过滤器的参数,如哈希函数的数量、过滤器的大小等,以优化性能和减少误判率。
-
使用备用过滤器:在需要高精度的场景下,可以使用备用过滤器来对误判进行二次确认,以提高准确性。
缓存击穿问题也叫热点Key问题,就是一个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击。