igoreus/bloomfilter

该包最新版本(v0.1.1)没有可用的许可信息。

布隆过滤器实现

v0.1.1 2016-10-26 07:13 UTC

This package is auto-updated.

Last update: 2024-09-16 20:57:04 UTC


README

布隆过滤器是一种空间高效的概率性数据结构,由Burton Howard Bloom于1970年提出,用于测试一个元素是否属于某个集合(可能存在误报,但不存在漏报)。

<?php

use \Igoreus\BloomFilter\Persist\Redis;
use \Igoreus\BloomFilter\BloomFilter;

$setToStore = [
    'Test string 1',
    'Test string 2',
    'Test string 3',
    'Test string 4',
    'Test string 5',
];

$filter = BloomFilter::createFromApproximateSize(
    Redis::create(),
    count($setToStore),
    0.001
);

foreach ($setToStore as $string) {
    $filter->add($string);
}

if ($filter->has('Test string 1')) {
    echo 'Possibly in set"' . PHP_EOL;
} else {
    echo 'Definitely not in set' . PHP_EOL;
}