aboutsummaryrefslogtreecommitdiff
path: root/shards.go
blob: bd197513f67fc33fb84b9460594eb118e12aedd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

import (
	"hash/fnv"
	"sync"
)
type Shard struct{
	mu sync.Mutex
	id int
	data map[string]Item
}

func (db *RedisDB) getShard(key string)*Shard{
	hash := fnv.New64a()
	hash.Write([]byte(key))
	val := hash.Sum64()

	return db.shards[val%16]
}