Skip to content
Merged
55 changes: 53 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,59 @@
# Python client for RedisBloom
[![license](https://img.shields.io/github/license/RedisBloom/redisbloom-py.svg)](https://github.com/RedisBloom/redisbloom-py)
[![PyPI version](https://badge.fury.io/py/redisbloom.svg)](https://badge.fury.io/py/redisbloom)
[![CircleCI](https://circleci.com/gh/RedisBloom/redisbloom-py/tree/master.svg?style=svg)](https://circleci.com/gh/RedisBloom/redisbloom-py/tree/master)
[![GitHub issues](https://img.shields.io/github/release/RedisBloom/redisbloom-py.svg)](https://github.com/RedisBloom/redisbloom-py/releases/latest)
[![Codecov](https://codecov.io/gh/RedisBloom/redisbloom-py/branch/master/graph/badge.svg)](https://codecov.io/gh/RedisBloom/redisbloom-py)

# redisbloom-py
Python client for Redisbloom
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.

### Installation
```
$ pip install redisbloom
```

### Usage example

```sql
# Using Bloom Filter
from redisbloom 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 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 Cuckoo Filter
from redisbloom 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 Cuckoo Filter
from redisbloom 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 ['D', 'A', 'B']
```

### API
For complete documentation about RedisBloom's commands, refer to [RedisBloom's website](http://redisbloom.io).

### License
[BSD 3-Clause](https://github.com/RedisBloom/redisbloom-py/blob/master/LICENSE)
15 changes: 0 additions & 15 deletions redisbloom/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,21 +90,6 @@ class Client(Redis): #changed from StrictRedis
TOPK_LIST = 'TOPK.LIST'
TOPK_INFO = 'TOPK.INFO'


CREATE_CMD = 'TS.CREATE'
ALTER_CMD = 'TS.ALTER'
ADD_CMD = 'TS.ADD'
INCRBY_CMD = 'TS.INCRBY'
DECRBY_CMD = 'TS.DECRBY'
CREATERULE_CMD = 'TS.CREATERULE'
DELETERULE_CMD = 'TS.DELETERULE'
RANGE_CMD = 'TS.RANGE'
MRANGE_CMD = 'TS.MRANGE'
GET_CMD = 'TS.GET'
MGET_CMD = 'TS.MGET'
INFO_CMD = 'TS.INFO'
QUERYINDEX_CMD = 'TS.QUERYINDEX'

def __init__(self, *args, **kwargs):
"""
Creates a new RedisBloom client.
Expand Down