布谷鸟过滤器的使用
通过 docker / docker-compose 部署 rebloom,创建并验证布谷鸟过滤器,通过 golang 连接 redis 使用,并增加连接池。
实用案例
docker-compose.yaml:
1 | rebloom: |
1 | //启动 |
通过 CF.INFO url
查看已创建的过滤器1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17127.0.0.1:6379> CF.INFO url
1) Size
2) (integer) 134217784
3) Number of buckets
4) (integer) 67108864
5) Number of filters
6) (integer) 1
7) Number of items inserted
8) (integer) 187359
9) Number of items deleted
10) (integer) 0
11) Bucket size
12) (integer) 2
13) Expansion rate
14) (integer) 1
15) Max iterations
16) (integer) 20
使用方式:1
2
3
4127.0.0.1:6379> CF.ADD url "google.com"
(integer) 1
127.0.0.1:6379> CF.EXISTS url "google.com"
(integer) 1
注意事项
- 应当在创建过滤器初期,估算好需要的容量,虽然支持自动扩容,但是扩容会导致查询性能下降,不建议使用。
扩容的原理
通过增加 filter 的层数,每一次增加的容量会是之前的 2 倍,查询的时候需要遍历每一层的 filter。
golang 使用 redisBloom 案例
1 | package main |