布隆过滤器:缓存穿透的终极解决方案
什么是布隆过滤器? 核心功能:快速判断元素是否存在 特点: ✅ 空间效率极高(百万数据仅需1MB) ✅ 查询速度快(O(k),k为hash函数个数) ❌ 存在误判(可能把不存在判断为存在) ❌ 无法删除元素 判断逻辑: if (bloomFilter.contains(key)) { // 可能存在(需要进一步查询确认) } else { // 一定不存在(可以直接返回) } 原理 数据结构:位数组 + 多个hash函数 1. 添加元素"apple" hash1("apple") = 3 → bit[3] = 1 hash2("apple") = 7 → bit[7] = 1 hash3("apple") = 10 → bit[10] = 1 2. 判断元素是否存在 if (bit[3] == 1 && bit[7] == 1 && bit[10] == 1) { return "可能存在"; } else { return "一定不存在"; } 误判原因:多个元素的hash值可能碰撞 ...