aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go17
1 files 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)