目录
1、具体步骤
1.1 引入Redisson依赖
首先,我们在项目的pom文件中添加 Redisson 依赖:
<properties>
<redisson.version>3.27.2</redisson.version>
</properties>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>${redisson.version}</version>
</dependency>
1.2 配置Redis连接
在application.yaml配置文件中配置Redis 连接:
spring:
redis:
host: 127.0.0.1 # Redis 服务器地址
port: 6379 # Redis 端口
password: # Redis 密码(如有)
database: 0 # 使用的 Redis 数据库编号
1.3 新建布隆过滤器配置类
定义 RBloomFilterConfiguration 布隆过滤器配置类:
/**
* 布隆过滤器配置类(以商品信息查询为例)
*/
@Configuration
public class RBloomFilterConfiguration {
/**
* 商品信息查询缓存穿透布隆过滤器
* 用于过滤不存在的商品ID查询请求,防止缓存穿透
*/
@Bean
public RBloomFilter<String> productInfoQueryBloomFilter(RedissonClient redissonClient) {
// 创建名为"productInfoQueryBloomFilter"的布隆过滤器
RBloomFilter<String> bloomFilter = redissonClient.getBloomFilter("productInfoQueryBloomFilter");
// 初始化布隆过滤器
// 第一个参数:预计存储的商品ID数量(根据实际业务调整)
// 第二个参数:期望的误判率(0.001表示0.1%)
bloomFilter.tryInit(100000L, 0.001);
return bloomFilter;
}
}
1.4 注入使用
在业务实现类上加上注解:
@RequiredArgsConstructor
在实现类内部引入布隆过滤器:
private final RBloomFilter<String> productInfoQueryBloomFilter;
至此,就可以在代码里使用布隆过滤器了。
2、快速计算布隆过滤器占用大小
https://krisives.github.io/bloom-calculator/
https://krisives.github.io/bloom-calculator/
我们以之前商品查询布隆过滤器的配置数据为例:count = 100000L,error = 0.001

可以看到,Functions (k):哈希函数的数量,这里约为 9.96。Size (m):布隆过滤器的大小,这里是 1437759 比特(约 175.50KB)。
365

被折叠的 条评论
为什么被折叠?



