redisson布隆过滤器的简单实现

@SpringBootTest
public class BloomFilterTest {
    @Resource
    private RedissonClient redissonClient;
    @Test
    public void testBloom() {
        RBloomFilter<Object> myBloomFilter = redissonClient.getBloomFilter("myBloomFilter");
        // 初始化布隆过滤器,设置预计插入的元素数量和误差率
        myBloomFilter.tryInit(1000000, 0.01);

        // 添加元素到布隆过滤器
        myBloomFilter.add("item1");
        myBloomFilter.add("item2");

        // 检查元素是否存在于布隆过滤器
        System.out.println(myBloomFilter.contains("item1"));  // 输出 true
        System.out.println(myBloomFilter.contains("item3"));  // 输出 false

        // 关闭 Redisson 客户端连接
        redissonClient.shutdown();

    }
}

在这里插入图片描述
bitmap数组长度是根据 boolean tryInit(long expectedInsertions, double falseProbability);这里面的两个参数计算得到的
公式 m = -((n * log§) / (log(2)^2)) ,其中,m 是位图数组的长度(也就是所需的位数),n 是预期插入的元素数量,p 是期望的误差率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值