Skip to content

tcpcloud/debian-python-consistent-hash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/>

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages