布隆过滤器学习笔记(解决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;
}
www.baidu.com

浙公网安备 33010602011771号