From b845271ad2e64bc128e3ef6a419d898edd4911c1 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 9 Jul 2026 18:43:17 +0200 Subject: updated go routine for clearing expired keys --- main.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/main.go b/main.go index 2364d02..54f2b38 100644 --- a/main.go +++ b/main.go @@ -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) -- cgit v1.2.3