/ketama

Package ketama implements a consistent hashing ring (long term maintenance).

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Ketama

Package ketama implements a consistent hashing ring (on md5).

https://pkg.go.dev/github.com/hit9/ketama

Example

package main

import (
	"fmt"
	"github.com/hit9/ketama"
)

func main() {
	ring := ketama.NewRing([]*ketama.Node{
		ketama.NewNode("127.0.0.1:8000", "binding data0", 1),
		ketama.NewNode("127.0.0.1:8001", "binding data1", 1),
		ketama.NewNode("127.0.0.1:8002", "binding data2", 1),
		ketama.NewNode("127.0.0.1:8003", "binding data3", 1),
		ketama.NewNode("127.0.0.1:8004", "binding data3", 1),
	})
	fmt.Printf("%v\n", ring.Get("key1"))
}

Please checkout ketama_example.go for more .

Links

License

BSD.