license PyPI version GitHub issues Codecov Known Vulnerabilities Total alerts
As of redis-py 4.0.0 this library is deprecated. It's features have been merged into redis-py. Please either install it from pypy or the repo.
redisbloom-py is a package that gives developers easy access to several probabilistic data structures. The package extends redis-py's interface with RedisBloom's API.
$ pip install redisbloom
# Using Bloom Filter from redisbloom.client import Client rb = Client() rb.bfCreate('bloom', 0.01, 1000) rb.bfAdd('bloom', 'foo') # returns 1 rb.bfAdd('bloom', 'foo') # returns 0 rb.bfExists('bloom', 'foo') # returns 1 rb.bfExists('bloom', 'noexist') # returns 0 # Using Cuckoo Filter from redisbloom.client import Client rb = Client() rb.cfCreate('cuckoo', 1000) rb.cfAdd('cuckoo', 'filter') # returns 1 rb.cfAddNX('cuckoo', 'filter') # returns 0 rb.cfExists('cuckoo', 'filter') # returns 1 rb.cfExists('cuckoo', 'noexist') # returns 0 # Using Count-Min Sketch from redisbloom.client import Client rb = Client() rb.cmsInitByDim('dim', 1000, 5) rb.cmsIncrBy('dim', ['foo'], [5]) rb.cmsIncrBy('dim', ['foo', 'bar'], [5, 15]) rb.cmsQuery('dim', 'foo', 'bar') # returns [10, 15] # Using Top-K from redisbloom.client import Client rb = Client() rb.topkReserve('topk', 3, 20, 3, 0.9) rb.topkAdd('topk', 'A', 'B', 'C', 'D', 'E', 'A', 'A', 'B', 'C', 'G', 'D', 'B', 'D', 'A', 'E', 'E') rb.topkQuery('topk', 'A', 'B', 'C', 'D') # returns [1, 1, 0, 1] rb.topkCount('topk', 'A', 'B', 'C', 'D') # returns [4, 3, 2, 3] rb.topkList('topk') # returns ['A', 'B', 'E'] rb.topkListWithCount('topk') # returns ['A', 4, 'B', 3, 'E', 3]
For complete documentation about RedisBloom's commands, refer to RedisBloom's website.
- Create a virtualenv to manage your python dependencies, and ensure it's active.
virtualenv -v venv - Install pypoetry to manage your dependencies.
pip install poetry - Install dependencies.
poetry install
tox runs all tests as its default target. Running tox by itself will run unit tests. Ensure you have a running redis, with the module loaded.