Implements consistent hashing with Python and the algorithm is the same as libketama.
Project description
consistent-hash
Implements consistent hashing that can be used when the number of server nodes can increase or decrease.The algorithm that is used for consistent hashing is the same as libketama <https://github.com/RJ/ketama>
Usage
It’s so easy to use^_^:
from consistent_hash import ConsistentHash
# You can construct consistent hash with the below three ways
con_hash = ConsistentHash({'192.168.0.101:11212':1, '192.168.0.102:11212':2, '192.168.0.103:11212':1})
# Or
con_hash = ConsistentHash(['192.168.0.101:11212', '192.168.0.102:11212', '192.168.0.103:11212']))
# Or
con_hash = ConsistentHash('192.168.0.101:11212')
# Add servers to hash ring
con_hash.add_nodes({'192.168.0.104:11212':1})
# Get a server via the key of object
server = con_hash.get_node('my_key')
# Delete the server from hash ring, you don't need to indicate weights
con_hash.del_nodes(['192.168.0.102:11212', '192.168.0.104:11212'])
Unit test
Firstly, install nose which extends unittest to make testing easier:
pip install nose
Then, run tests:
# Option -s any stdout output will be printed immediately # and -v be more verbose nosetests -s -v
More information about nose <https://nose.readthedocs.org/en/latest/>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file consistent_hash-1.0.tar.gz.
File metadata
- Download URL: consistent_hash-1.0.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9f88eff086680918b458b62994fbf07ef97736771f1e9f3b05855547636a7ac
|
|
| MD5 |
4f18a0df135ef4416029f6d733738c68
|
|
| BLAKE2b-256 |
26bec87797f4c4d941486747997608c425d5a47e9fcc3da27759fd00488b0e2e
|
File details
Details for the file consistent_hash-1.0-py2.7.egg.
File metadata
- Download URL: consistent_hash-1.0-py2.7.egg
- Upload date:
- Size: 6.8 kB
- Tags: Egg
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adc3bf7cba13dd2cabe50c5d4507d9a8a3ff2610b6801e88acf73d158946658d
|
|
| MD5 |
0c0d8ce9976d0283da26783dc543006f
|
|
| BLAKE2b-256 |
d4f49dfe91d8b7585e0b08c3ec11f7387bc996c6a721b7d3cd5cc9402436a80b
|