util/hash.go
2022-05-14 14:45:14 +08:00

41 lines
758 B
Go

// Package util...
//
// Description : util...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 2021-02-24 11:04 下午
package util
import (
"fmt"
"github.com/spaolacci/murmur3"
)
// hash ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:41 2022/5/14
type hash struct {
}
// GetHashID ...
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:04 下午 2021/2/24
func (h *hash) GetHashID(key interface{}) uint64 {
return murmur3.Sum64([]byte(fmt.Sprintf("%v", key)))
}
// GetHashIDMod 获取hashID并取模
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 11:07 下午 2021/2/24
func (h *hash) GetHashIDMod(key interface{}, shard int) int {
return int(h.GetHashID(key) % uint64(shard))
}