diff options
| author | alex <[email protected]> | 2026-07-10 20:24:59 +0200 |
|---|---|---|
| committer | alex <[email protected]> | 2026-07-10 20:24:59 +0200 |
| commit | 36d70e64340033f1e5b928524436c0b2f44c831e (patch) | |
| tree | acbfc67b411f184f2de14a24838aaf1d547b7d91 /main.go | |
| parent | d1628cb76ac4f907d8e57346809e3ac0b8e12de5 (diff) | |
| download | redis-clone-36d70e64340033f1e5b928524436c0b2f44c831e.tar.xz redis-clone-36d70e64340033f1e5b928524436c0b2f44c831e.zip | |
moved commands and database and main into separate packages
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 30 |
1 files changed, 16 insertions, 14 deletions
@@ -5,13 +5,15 @@ import ( "fmt" "net" "os" + "redisClone/pkg/commands" + "redisClone/pkg/core" "strings" "time" ) -const NumShards = 16 -var db RedisDB + +var db core.RedisDB var hub Hub type baseHandlerFunc func([]string)interface{} @@ -50,28 +52,28 @@ var connectionCommandRegistry = map[string]connectionHandlerFunc{ } func main() { - shards := make([]*Shard, NumShards) + shards := make([]*core.Shard, core.NumShards) - for i := 0; i < NumShards; i++ { - shards[i] = &Shard{ - data: make(map[string]Item), - id: i, + for i := 0; i < core.NumShards; i++ { + shards[i] = &core.Shard{ + Data: make(map[string]core.Item), + Id: i, } } - db = RedisDB{shards: shards} + db = core.RedisDB{Shards: shards} hub = Hub{Channels: make(map[string]map[net.Conn]struct{}),} go func() { ticker := time.NewTicker(1 * time.Second) for range ticker.C { - for _,shard := range db.shards{ - shard.mu.Lock() - for k, v := range shard.data { + 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) + delete(shard.Data, k) } } - shard.mu.Unlock() + shard.Mu.Unlock() } } }() @@ -117,7 +119,7 @@ func handleConnection(conn net.Conn) { command := strings.ToUpper(args[0]) - conn.Write(serializeRESP(DispatchBaseCommand(command,args))) + conn.Write(core.SerializeRESP(commands.DispatchBaseCommand(db,command,args))) } }
\ No newline at end of file |
