布隆过滤器学习笔记(解决redis缓存穿透)

1、添加配置信息

@Configuration
@EnableCaching //开启注解
public class RedisConfig extends CachingConfigurerSupport {
    @Value("${spring.redis.host}")
    private String address;
    @Value("${spring.redis.password}")
    private String password;
    @Value("${spring.redis.port}")
    private String host;

    @Bean
    public Config redissionConfig()
    {
        Config config=new Config();
        SingleServerConfig singleServerConfig=config.useSingleServer();
        singleServerConfig.setAddress("redis://"+address+":"+host);
        singleServerConfig.setPassword(password);
        return config;
    }
    //布隆过滤器
    @Bean
    public RedissonClient redissonClient()
    {
        return Redisson.create(redissionConfig());
    }
}

2、测试代码

@PutMapping("test")
    public String test(){
        RedissonClient client= redissonClientUtil.getRedissonClientUtil();
        RBloomFilter<String>bloomFilter= client.getBloomFilter("test5-bloom-filter");
        // 初始化布隆过滤器,数组长度100W,误判率 1%
        bloomFilter.tryInit(1000000L, 0.01);
        bloomFilter.expire(1, TimeUnit.MINUTES);//设置过期时间
        // 添加数据
        bloomFilter.add("ID1");
        bloomFilter.add("ID3");
        // 判断是否存在
        String result= bloomFilter.contains("ID3")+","+bloomFilter.contains("ID1");
        return result;
    }

 

posted @ 2022-04-27 14:57  一颗小树苗  阅读(60)  评论(0编辑  收藏  举报