This repository has been archived by the owner on Feb 12, 2022. It is now read-only.
forked from brunoalano/bloom-python-driver
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.txt
82 lines (54 loc) · 2.01 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
bloom-python-driver
=========
Pybloom provides a Python client library to interface with
bloomd servers. The library supports multiple bloomd servers,
and automatically handles filter discovery and sharding.
Features
--------
* Provides a simple API for using bloomd
* Allows for using multiple bloomd servers
- Auto-discovers filter locations
- Balance the creation of new filters
- Explicitly name the location to make filters
* Command pipelining to reduce latency
Install
-------
Download and install from source:
python setup.py install
Example
------
Using pybloom is very simple, and is similar to using native sets::
from pybloom import BloomdClient
# Create a client to a local bloomd server, default port
client = BloomdClient(["localhost"])
# Get or create the foobar filter
foobar = client.create_filter("foobar")
# Set a property and check it exists
foobar.add("Test Key!")
assert "Test Key!" in foobar
To support multiple servers, just add multiple servers::
from pybloom import BloomdClient
# Create a client to a multiple bloomd servers, default ports
client = BloomdClient(["bloomd1", "bloomd2"])
# Create 4 filters, should be on different machines
for x in xrange(4):
client.create_filter("test%d" % x)
# Show which servers the filters are on by
# specifying the inc_server flag
print client.list_filters(inc_server=True)
# Use the filters
client["test0"].add("Hi there!")
client["test1"].add("ZING!")
client["test2"].add("Chuck Testa!")
client["test3"].add("Not cool, bro.")
Using pipelining is straightforward as well::
from pybloom import BloomdClient
# Create a client to a local bloomd server, default port
client = BloomdClient(["localhost"])
# Get or create the foobar filter
pipe = client.create_filter("pipe").pipeline()
# Chain multiple add commands
results = pipe.add("foo").add("bar").add("baz").execute()
assert results[0]
assert results[1]
assert results[2]