Download the PHP package denismitr/laravel-bloom without Composer
On this page you can find all versions of the php package denismitr/laravel-bloom. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download denismitr/laravel-bloom
More information about denismitr/laravel-bloom
Files in denismitr/laravel-bloom
Package laravel-bloom
Short Description Bloom filter implementation for Laravel based on Redis
License MIT
Homepage https://github.com/denismitr/laravel-bloom
Informations about the package laravel-bloom
Laravel Bloom filter implementation
A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not – in other words, a query returns either "possibly in set" or "definitely not in set". Elements can be added to the set, but not removed (though this can be addressed with a "counting" filter); the more elements that are added to the set, the larger the probability of false positives.
Read the Full article on Wikipedia.
Installation
composer require denismitr/laravel-bloom
Latest version - 0.3
Configuration
Bloom filter configuration file: bloom.php
MAX_CAPACITY
for this Bloom filter implementation is currently at 4294967296
.
default
section applies to all keys, unless they have a dedicated configuration,
specified inside the keys
section.
size
- is the size of the Bloom filter storage 10M-100M bit is recommended sizenum_hashes
- is a number of hash functions applied to each item put into Bloom filterpersistance
- is an array containing persistence configuration -driver
andconnection
driver
- at the moment only redis is supportedconnection
- for redis connection is specified inredis
section of thedatabase.php
configuration file in standard Laravel setup.
hashing_algorithm
- self explanatory, at the momentmd5
andmurmur
hashing algorithms are supported.
Usage
you can use facade - Denismitr\Bloom\Facades\Bloom
or just inject
Denismitr\Bloom\BloomManager
as dependency and it will be resolved by Laravel
Default configuration with DI
Default configuration with facade
Key specific configuration
in bloom.php
find keys
section and add a configuration for a key that you want
to use with parameters others than default
.
now when you use Bloom filter with that key it will use that configuration.
Bloom::key('seen-banners')->add($bammer->id)
Key suffix
For your convenience there is an easy way to generate user specific keys, just pass
user ID as a second argument when calling the key
method like so:
or
Testing
- Test coverage > 90%
composer test
For now you need an actual Redis set up on your machine.
All versions of laravel-bloom with dependencies
illuminate/contracts Version ~5.6.0|~5.7.0|~5.8.0
illuminate/redis Version ~5.6.0|~5.7.0|~5.8.0
illuminate/support Version ~5.6.0|~5.7.0|~5.8.0
lastguest/murmurhash Version ^2.0
predis/predis Version ^1.1