aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralex <[email protected]>2026-07-07 19:34:11 +0200
committeralex <[email protected]>2026-07-07 19:34:11 +0200
commit317dd52764ff650602d77f919bcd02270687b3a7 (patch)
tree6e2f3e74b71076a0bf11c15e4b9247e2ebb3df0c
parent162077efd25e286f7a0fd0fd214be6d1e7de337e (diff)
downloadredis-clone-317dd52764ff650602d77f919bcd02270687b3a7.tar.xz
redis-clone-317dd52764ff650602d77f919bcd02270687b3a7.zip
DEL can now handle multiple keys
-rw-r--r--handlers.go18
1 files changed, 9 insertions, 9 deletions
diff --git a/handlers.go b/handlers.go
index 3bb08be..8a667de 100644
--- a/handlers.go
+++ b/handlers.go
@@ -82,21 +82,21 @@ func handleDel(conn net.Conn, args []string) {
db.mu.Lock()
defer db.mu.Unlock()
- if len(args) != 2 {
+ if len(args) < 2 {
err := errors.New("wrong number of arguments for 'DEL'")
conn.Write(serializeRESP(err))
return
}
- key := args[1]
-
- _, exists := db.data[key]
- if exists {
- delete(db.data, key)
- conn.Write(serializeRESP(1))
- } else {
- conn.Write(serializeRESP(0))
+ deletedKeys := 0
+ for i := 1; i<len(args);i++{
+ _, exists := db.data[args[i]]
+ if exists {
+ delete(db.data, args[i])
+ deletedKeys += 1
+ }
}
+ conn.Write(serializeRESP(deletedKeys))
}
func handleIncr(conn net.Conn, args []string) {