diff options
| -rw-r--r-- | redisDB.go | 9 | ||||
| -rw-r--r-- | shards.go | 9 |
2 files changed, 8 insertions, 10 deletions
@@ -2,7 +2,6 @@ package main import ( "fmt" - "sync" "time" ) type Item struct { @@ -11,19 +10,11 @@ type Item struct { } type RedisDB struct { - mu sync.Mutex shards []*Shard } type SimpleString string -func (db *RedisDB) Execute(key string, fn func(*Shard) interface{}) interface{} { - shard := db.getShard(key) - shard.mu.Lock() - defer shard.mu.Unlock() - return fn(shard) -} - func serializeRESP(v any) []byte { switch val := v.(type) { case string: @@ -16,4 +16,11 @@ func (db *RedisDB) getShard(key string)*Shard{ val := hash.Sum64() return db.shards[val%16] -}
\ No newline at end of file +} + +func (db *RedisDB) Execute(key string, fn func(*Shard) interface{}) interface{} { + shard := db.getShard(key) + shard.mu.Lock() + defer shard.mu.Unlock() + return fn(shard) +} |
