andrewdalpino / okbloomer
PHP 的超低内存使用自动扩展 Bloom 过滤器。
1.0.0
2022-01-24 03:41 UTC
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpbench/phpbench: ^1.0
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-05 05:10:54 UTC
README
PHP 的超低内存占用自动扩展 Bloom 过滤器。Ok Bloomer 采用一种新颖的分层过滤策略,在保持误报率上限的同时实现扩展。每一层由一个位图组成,该位图记录了已插入项的哈希签名。如果一个项被过滤器捕获,则它可能之前已经见过。然而,如果一个项通过了过滤器,则它肯定之前从未见过。
- 超低内存占用
- 自动扩展适用于流数据
- 有界最大误报率
- 开源且可用于商业用途
安装
使用 Composer 将其安装到您的项目中
$ composer require andrewdalpino/okbloomer
要求
- PHP 7.4 或更高版本
Bloom 过滤器
一种概率性数据结构,它以最大误报率估计给定项的先前发生。
参数
示例
use OkBloomer\BloomFilter; $filter = new BloomFilter(0.01, 4, 32000000); $filter->insert('foo'); echo $filter->exists('foo'); echo $filter->existsOrInsert('bar'); echo $filter->exists('bar');
true
false
true
测试
运行单元测试
$ composer test
静态分析
运行静态代码分析
$ composer analyze
基准测试
运行基准测试
$ composer benchmark
参考
- [1] P. S. Almeida 等人 (2007). 可扩展的 Bloom 过滤器。