diff options
| -rw-r--r-- | main.go | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -7,6 +7,7 @@ import ( "net" "os" "strings" + "time" ) const NumShards = 16 @@ -52,20 +53,22 @@ func main() { } } db = RedisDB{shards: shards} -/* + go func() { ticker := time.NewTicker(1 * time.Second) for range ticker.C { - db.mu.Lock() - for k, v := range db.data { - if v.ExpiresAt != nil && time.Now().After(*v.ExpiresAt) { - delete(db.data, k) + for _,shard := range db.shards{ + shard.mu.Lock() + for k, v := range shard.data { + if v.ExpiresAt != nil && time.Now().After(*v.ExpiresAt) { + delete(shard.data, k) + } } + shard.mu.Unlock() } - db.mu.Unlock() } }() -*/ + listener, err := net.Listen("tcp", ":6379") if err != nil { fmt.Println("error starting server: ", err) |
