hash

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2021 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// TopWeight is the top weight that one entry might set.
	TopWeight = 100
)

Variables

This section is empty.

Functions

func Hash

func Hash(data []byte) uint64

Hash returns the hash value of data.

func Md5

func Md5(data []byte) []byte

Md5 returns the md5 bytes of data.

func Md5Hex

func Md5Hex(data []byte) string

Md5Hex returns the md5 hex string of data.

Types

type ConsistentHash

type ConsistentHash struct {
	// contains filtered or unexported fields
}

A ConsistentHash is a ring hash implementation.

func NewConsistentHash

func NewConsistentHash() *ConsistentHash

NewConsistentHash returns a ConsistentHash.

func NewCustomConsistentHash

func NewCustomConsistentHash(replicas int, fn Func) *ConsistentHash

NewCustomConsistentHash returns a ConsistentHash with given replicas and hash func.

func (*ConsistentHash) Add

func (h *ConsistentHash) Add(node interface{})

Add adds the node with the number of h.replicas, the later call will overwrite the replicas of the former calls.

func (*ConsistentHash) AddWithReplicas

func (h *ConsistentHash) AddWithReplicas(node interface{}, replicas int)

AddWithReplicas adds the node with the number of replicas, replicas will be truncated to h.replicas if it's larger than h.replicas, the later call will overwrite the replicas of the former calls.

func (*ConsistentHash) AddWithWeight

func (h *ConsistentHash) AddWithWeight(node interface{}, weight int)

AddWithWeight adds the node with weight, the weight can be 1 to 100, indicates the percent, the later call will overwrite the replicas of the former calls.

func (*ConsistentHash) Get

func (h *ConsistentHash) Get(v interface{}) (interface{}, bool)

Get returns the corresponding node from h base on the given v.

func (*ConsistentHash) Remove

func (h *ConsistentHash) Remove(node interface{})

Remove removes the given node from h.

type Func

type Func func(data []byte) uint64

Func defines the hash method.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL