andrewdalpino/okbloomer

PHP 的超低内存使用自动扩展 Bloom 过滤器。

1.0.0 2022-01-24 03:41 UTC

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 过滤器。