|
| 1 | +# Python client for RedisBloom |
1 | 2 | [](https://github.com/RedisBloom/redisbloom-py) |
2 | 3 | [](https://badge.fury.io/py/redisbloom) |
3 | 4 | [](https://circleci.com/gh/RedisBloom/redisbloom-py/tree/master) |
4 | 5 | [](https://github.com/RedisBloom/redisbloom-py/releases/latest) |
5 | 6 | [](https://codecov.io/gh/RedisBloom/redisbloom-py) |
6 | 7 |
|
7 | | -# redisbloom-py |
8 | | -Python client for Redisbloom |
| 8 | +redisbloom-py is a package that gives developers easy access to several probabilistic data structures. The package extends [redis-py](https://github.com/andymccurdy/redis-py)'s interface with RedisBloom's API. |
| 9 | + |
| 10 | +### Installation |
| 11 | +``` |
| 12 | +$ pip install redisbloom |
| 13 | +``` |
| 14 | + |
| 15 | +### Usage example |
| 16 | + |
| 17 | +```sql |
| 18 | +# Using Bloom Filter |
| 19 | +from redisbloom import Client |
| 20 | +rb = Client() |
| 21 | +rb.bfCreate('bloom', 0.01, 1000) |
| 22 | +rb.bfAdd('bloom', 'foo') # returns 1 |
| 23 | +rb.bfAdd('bloom', 'foo') # returns 0 |
| 24 | +rb.bfExists('bloom', 'foo') # returns 1 |
| 25 | +rb.bfExists('bloom', 'noexist') # returns 0 |
| 26 | + |
| 27 | +# Using Cuckoo Filter |
| 28 | +from redisbloom import Client |
| 29 | +rb = Client() |
| 30 | +rb.cfCreate('cuckoo', 1000) |
| 31 | +rb.cfAdd('cuckoo', 'filter') # returns 1 |
| 32 | +rb.cfAddNX('cuckoo', 'filter') # returns 0 |
| 33 | +rb.cfExists('cuckoo', 'filter') # returns 1 |
| 34 | +rb.cfExists('cuckoo', 'noexist') # returns 0 |
| 35 | + |
| 36 | +# Using Cuckoo Filter |
| 37 | +from redisbloom import Client |
| 38 | +rb = Client() |
| 39 | +rb.cmsInitByDim('dim', 1000, 5) |
| 40 | +rb.cmsIncrBy('dim', ['foo'], [5]) |
| 41 | +rb.cmsIncrBy('dim', ['foo', 'bar'], [5, 15]) |
| 42 | +rb.cmsQuery('dim', 'foo', 'bar') # returns [10, 15] |
| 43 | + |
| 44 | +# Using Cuckoo Filter |
| 45 | +from redisbloom import Client |
| 46 | +rb = Client() |
| 47 | +rb.topkReserve('topk', 3, 20, 3, 0.9) |
| 48 | +rb.topkAdd('topk', 'A', 'B', 'C', 'D', 'E', 'A', 'A', 'B', |
| 49 | + 'C', 'G', 'D', 'B', 'D', 'A', 'E', 'E') |
| 50 | +rb.topkQuery('topk', 'A', 'B', 'C', 'D') # returns [1, 1, 0, 1] |
| 51 | +rb.topkCount('topk', 'A', 'B', 'C', 'D') # returns [4, 3, 2, 3] |
| 52 | +rb.topkList('topk') # returns ['D', 'A', 'B'] |
| 53 | +``` |
| 54 | + |
| 55 | +### API |
| 56 | +For complete documentation about RedisBloom's commands, refer to [RedisBloom's website](http://redisbloom.io). |
| 57 | + |
| 58 | +### License |
| 59 | +[BSD 3-Clause](https://github.com/RedisBloom/redisbloom-py/blob/master/LICENSE) |
0 commit comments