From 03f03fd098311ccbbce207ab20504cbb57919c5e Mon Sep 17 00:00:00 2001 From: "zhongshihang.sec" Date: Mon, 20 Jun 2022 13:53:01 +0800 Subject: [PATCH] Fix invalid resposne of `COMMAND` --- cmd_command.go | 2035 +----------------------------------------------- 1 file changed, 2 insertions(+), 2033 deletions(-) diff --git a/cmd_command.go b/cmd_command.go index 33c691c1..59abefd3 100644 --- a/cmd_command.go +++ b/cmd_command.go @@ -12,2038 +12,7 @@ func (m *Miniredis) cmdCommand(c *server.Peer, cmd string, args []string) { // Got from redis 5.0.7 with // echo 'COMMAND' | nc redis_addr redis_port // - res := ` -*200 -*6 -$12 -hincrbyfloat -:4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$10 -xreadgroup -:-7 -*3 -+write -+noscript -+movablekeys -:1 -:1 -:1 -*6 -$10 -sdiffstore -:-3 -*2 -+write -+denyoom -:1 -:-1 -:1 -*6 -$8 -lastsave -:1 -*2 -+random -+fast -:0 -:0 -:0 -*6 -$5 -setnx -:3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$8 -bzpopmax -:-3 -*3 -+write -+noscript -+fast -:1 -:-2 -:1 -*6 -$12 -punsubscribe -:-1 -*4 -+pubsub -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$4 -xack -:-4 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$10 -pfselftest -:1 -*1 -+admin -:0 -:0 -:0 -*6 -$6 -substr -:4 -*1 -+readonly -:1 -:1 -:1 -*6 -$8 -smembers -:2 -*2 -+readonly -+sort_for_script -:1 -:1 -:1 -*6 -$11 -unsubscribe -:-1 -*4 -+pubsub -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$11 -zinterstore -:-4 -*3 -+write -+denyoom -+movablekeys -:0 -:0 -:0 -*6 -$6 -strlen -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$7 -pfmerge -:-2 -*2 -+write -+denyoom -:1 -:-1 -:1 -*6 -$9 -randomkey -:1 -*2 -+readonly -+random -:0 -:0 -:0 -*6 -$6 -lolwut -:-1 -*1 -+readonly -:0 -:0 -:0 -*6 -$4 -rpop -:2 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$5 -hkeys -:2 -*2 -+readonly -+sort_for_script -:1 -:1 -:1 -*6 -$6 -client -:-2 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$6 -module -:-2 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$7 -slowlog -:-2 -*2 -+admin -+random -:0 -:0 -:0 -*6 -$7 -geohash -:-2 -*1 -+readonly -:1 -:1 -:1 -*6 -$6 -lrange -:4 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -ping -:-1 -*2 -+stale -+fast -:0 -:0 -:0 -*6 -$8 -bitcount -:-2 -*1 -+readonly -:1 -:1 -:1 -*6 -$6 -pubsub -:-2 -*4 -+pubsub -+random -+loading -+stale -:0 -:0 -:0 -*6 -$4 -role -:1 -*3 -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$4 -hget -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -object -:-2 -*2 -+readonly -+random -:2 -:2 -:1 -*6 -$9 -zrevrange -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$7 -hincrby -:4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$9 -zlexcount -:4 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$5 -scard -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -append -:3 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$7 -hstrlen -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -config -:-2 -*4 -+admin -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$4 -hset -:-4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$16 -zrevrangebyscore -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -incr -:2 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$6 -setbit -:4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$9 -rpoplpush -:3 -*2 -+write -+denyoom -:1 -:2 -:1 -*6 -$6 -xclaim -:-6 -*3 -+write -+random -+fast -:1 -:1 -:1 -*6 -$11 -sinterstore -:-3 -*2 -+write -+denyoom -:1 -:-1 -:1 -*6 -$7 -publish -:3 -*4 -+pubsub -+loading -+stale -+fast -:0 -:0 -:0 -*6 -$5 -hscan -:-3 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$5 -multi -:1 -*2 -+noscript -+fast -:0 -:0 -:0 -*6 -$3 -set -:-3 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$6 -lpushx -:-3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$16 -zremrangebyscore -:4 -*1 -+write -:1 -:1 -:1 -*6 -$9 -pexpireat -:3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$4 -hdel -:-3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$12 -bgrewriteaof -:1 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$7 -migrate -:-6 -*3 -+write -+random -+movablekeys -:0 -:0 -:0 -*6 -$9 -replicaof -:3 -*3 -+admin -+noscript -+stale -:0 -:0 -:0 -*6 -$5 -touch -:-2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -xsetid -:3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$5 -bitop -:-4 -*2 -+write -+denyoom -:2 -:-1 -:1 -*6 -$6 -swapdb -:3 -*2 -+write -+fast -:0 -:0 -:0 -*6 -$5 -sdiff -:-2 -*2 -+readonly -+sort_for_script -:1 -:-1 -:1 -*6 -$6 -lindex -:3 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -wait -:3 -*1 -+noscript -:0 -:0 -:0 -*6 -$4 -lrem -:4 -*1 -+write -:1 -:1 -:1 -*6 -$6 -hsetnx -:4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$8 -getrange -:4 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -hlen -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$4 -post -:-1 -*2 -+loading -+stale -:0 -:0 -:0 -*6 -$9 -sismember -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$7 -unwatch -:1 -*2 -+noscript -+fast -:0 -:0 -:0 -*6 -$5 -lpush -:-3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$4 -scan -:-2 -*2 -+readonly -+random -:0 -:0 -:0 -*6 -$5 -smove -:4 -*2 -+write -+fast -:1 -:2 -:1 -*6 -$7 -cluster -:-2 -*1 -+admin -:0 -:0 -:0 -*6 -$6 -bgsave -:-1 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$4 -dump -:2 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$7 -latency -:-2 -*4 -+admin -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$8 -bzpopmin -:-3 -*3 -+write -+noscript -+fast -:1 -:-2 -:1 -*6 -$6 -getbit -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$7 -hgetall -:2 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$6 -rename -:3 -*1 -+write -:1 -:2 -:1 -*6 -$9 -subscribe -:-2 -*4 -+pubsub -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$4 -xdel -:-3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$15 -zremrangebyrank -:4 -*1 -+write -:1 -:1 -:1 -*6 -$4 -type -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -script -:-2 -*1 -+noscript -:0 -:0 -:0 -*6 -$5 -hmset -:-4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$6 -sunion -:-2 -*2 -+readonly -+sort_for_script -:1 -:-1 -:1 -*6 -$4 -mget -:-2 -*2 -+readonly -+fast -:1 -:-1 -:1 -*6 -$10 -brpoplpush -:4 -*3 -+write -+denyoom -+noscript -:1 -:2 -:1 -*6 -$6 -geoadd -:-5 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$6 -decrby -:3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$4 -echo -:2 -*1 -+fast -:0 -:0 -:0 -*6 -$6 -dbsize -:1 -*2 -+readonly -+fast -:0 -:0 -:0 -*6 -$5 -zcard -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -select -:2 -*2 -+loading -+fast -:0 -:0 -:0 -*6 -$4 -sadd -:-3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$5 -host: -:-1 -*2 -+loading -+stale -:0 -:0 -:0 -*6 -$5 -sscan -:-3 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$12 -georadius_ro -:-6 -*2 -+readonly -+movablekeys -:1 -:1 -:1 -*6 -$7 -monitor -:1 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$14 -zremrangebylex -:4 -*1 -+write -:1 -:1 -:1 -*6 -$11 -sunionstore -:-3 -*2 -+write -+denyoom -:1 -:-1 -:1 -*6 -$5 -zscan -:-3 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$9 -readwrite -:1 -*1 -+fast -:0 -:0 -:0 -*6 -$6 -xgroup -:-2 -*2 -+write -+denyoom -:2 -:2 -:1 -*6 -$5 -setex -:4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$4 -save -:1 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$5 -hvals -:2 -*2 -+readonly -+sort_for_script -:1 -:1 -:1 -*6 -$5 -watch -:-2 -*2 -+noscript -+fast -:1 -:-1 -:1 -*6 -$7 -hexists -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$4 -info -:-1 -*3 -+random -+loading -+stale -:0 -:0 -:0 -*6 -$5 -psync -:3 -*3 -+readonly -+admin -+noscript -:0 -:0 -:0 -*6 -$11 -zrangebylex -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -zadd -:-4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$4 -xlen -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$4 -auth -:2 -*4 -+noscript -+loading -+stale -+fast -:0 -:0 -:0 -*6 -$4 -srem -:-3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$9 -georadius -:-6 -*2 -+write -+movablekeys -:1 -:1 -:1 -*6 -$4 -exec -:1 -*2 -+noscript -+skip_monitor -:0 -:0 -:0 -*6 -$7 -pfcount -:-2 -*1 -+readonly -:1 -:-1 -:1 -*6 -$7 -zpopmin -:-2 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$4 -move -:3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$5 -xtrim -:-2 -*3 -+write -+random -+fast -:1 -:1 -:1 -*6 -$6 -asking -:1 -*1 -+fast -:0 -:0 -:0 -*6 -$4 -pttl -:2 -*3 -+readonly -+random -+fast -:1 -:1 -:1 -*6 -$11 -srandmember -:-2 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$8 -flushall -:-1 -*1 -+write -:0 -:0 -:0 -*6 -$4 -sort -:-2 -*3 -+write -+denyoom -+movablekeys -:1 -:1 -:1 -*6 -$3 -del -:-2 -*1 -+write -:1 -:-1 -:1 -*6 -$14 -restore-asking -:-4 -*3 -+write -+denyoom -+asking -:1 -:1 -:1 -*6 -$10 -psubscribe -:-2 -*4 -+pubsub -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$4 -decr -:2 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$6 -incrby -:3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$14 -zrevrangebylex -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$8 -bitfield -:-2 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$6 -exists -:-2 -*2 -+readonly -+fast -:1 -:-1 -:1 -*6 -$8 -replconf -:-1 -*4 -+admin -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$7 -zincrby -:4 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$5 -blpop -:-3 -*2 -+write -+noscript -:1 -:-2 -:1 -*6 -$4 -lpop -:2 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$3 -ttl -:2 -*3 -+readonly -+random -+fast -:1 -:1 -:1 -*6 -$5 -xread -:-4 -*3 -+readonly -+noscript -+movablekeys -:1 -:1 -:1 -*6 -$5 -rpush -:-3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$8 -zrevrank -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$11 -incrbyfloat -:3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$5 -brpop -:-3 -*2 -+write -+noscript -:1 -:-2 -:1 -*6 -$4 -xadd -:-5 -*4 -+write -+denyoom -+random -+fast -:1 -:1 -:1 -*6 -$8 -setrange -:4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$17 -georadiusbymember -:-5 -*2 -+write -+movablekeys -:1 -:1 -:1 -*6 -$6 -unlink -:-2 -*2 -+write -+fast -:1 -:-1 -:1 -*6 -$8 -expireat -:3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$5 -debug -:-2 -*2 -+admin -+noscript -:0 -:0 -:0 -*6 -$20 -georadiusbymember_ro -:-5 -*2 -+readonly -+movablekeys -:1 -:1 -:1 -*6 -$4 -lset -:4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$6 -zscore -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$4 -llen -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$4 -time -:1 -*2 -+random -+fast -:0 -:0 -:0 -*6 -$8 -shutdown -:-1 -*4 -+admin -+noscript -+loading -+stale -:0 -:0 -:0 -*6 -$7 -evalsha -:-3 -*2 -+noscript -+movablekeys -:0 -:0 -:0 -*6 -$6 -zcount -:4 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -memory -:-2 -*2 -+readonly -+random -:0 -:0 -:0 -*6 -$5 -xinfo -:-2 -*2 -+readonly -+random -:2 -:2 -:1 -*6 -$8 -xpending -:-3 -*2 -+readonly -+random -:1 -:1 -:1 -*6 -$4 -eval -:-3 -*2 -+noscript -+movablekeys -:0 -:0 -:0 -*6 -$6 -xrange -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$7 -restore -:-4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$7 -zpopmax -:-2 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$4 -mset -:-3 -*2 -+write -+denyoom -:1 -:-1 -:2 -*6 -$4 -spop -:-2 -*3 -+write -+random -+fast -:1 -:1 -:1 -*6 -$5 -ltrim -:4 -*1 -+write -:1 -:1 -:1 -*6 -$5 -zrank -:3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$9 -xrevrange -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$3 -get -:2 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$7 -flushdb -:-1 -*1 -+write -:0 -:0 -:0 -*6 -$5 -hmget -:-3 -*2 -+readonly -+fast -:1 -:1 -:1 -*6 -$6 -msetnx -:-3 -*2 -+write -+denyoom -:1 -:-1 -:2 -*6 -$7 -persist -:2 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$11 -zunionstore -:-4 -*3 -+write -+denyoom -+movablekeys -:0 -:0 -:0 -*6 -$7 -command -:0 -*3 -+random -+loading -+stale -:0 -:0 -:0 -*6 -$8 -renamenx -:3 -*2 -+write -+fast -:1 -:2 -:1 -*6 -$6 -zrange -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$7 -pexpire -:3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$4 -keys -:2 -*2 -+readonly -+sort_for_script -:0 -:0 -:0 -*6 -$4 -zrem -:-3 -*2 -+write -+fast -:1 -:1 -:1 -*6 -$5 -pfadd -:-2 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$6 -psetex -:4 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$13 -zrangebyscore -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$4 -sync -:1 -*3 -+readonly -+admin -+noscript -:0 -:0 -:0 -*6 -$7 -pfdebug -:-3 -*1 -+write -:0 -:0 -:0 -*6 -$7 -discard -:1 -*2 -+noscript -+fast -:0 -:0 -:0 -*6 -$8 -readonly -:1 -*1 -+fast -:0 -:0 -:0 -*6 -$7 -geodist -:-4 -*1 -+readonly -:1 -:1 -:1 -*6 -$6 -geopos -:-2 -*1 -+readonly -:1 -:1 -:1 -*6 -$6 -bitpos -:-3 -*1 -+readonly -:1 -:1 -:1 -*6 -$6 -sinter -:-2 -*2 -+readonly -+sort_for_script -:1 -:-1 -:1 -*6 -$6 -getset -:3 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$7 -slaveof -:3 -*3 -+admin -+noscript -+stale -:0 -:0 -:0 -*6 -$6 -rpushx -:-3 -*3 -+write -+denyoom -+fast -:1 -:1 -:1 -*6 -$7 -linsert -:5 -*2 -+write -+denyoom -:1 -:1 -:1 -*6 -$6 -expire -:3 -*2 -+write -+fast -:1 -:1 -:1 - ` + res := "*200\r\n*6\r\n$12\r\nhincrbyfloat\r\n:4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$10\r\nxreadgroup\r\n:-7\r\n*3\r\n+write\r\n+noscript\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$10\r\nsdiffstore\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$8\r\nlastsave\r\n:1\r\n*2\r\n+random\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nsetnx\r\n:3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nbzpopmax\r\n:-3\r\n*3\r\n+write\r\n+noscript\r\n+fast\r\n:1\r\n:-2\r\n:1\r\n*6\r\n$12\r\npunsubscribe\r\n:-1\r\n*4\r\n+pubsub\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nxack\r\n:-4\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$10\r\npfselftest\r\n:1\r\n*1\r\n+admin\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nsubstr\r\n:4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nsmembers\r\n:2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nunsubscribe\r\n:-1\r\n*4\r\n+pubsub\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$11\r\nzinterstore\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+movablekeys\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nstrlen\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\npfmerge\r\n:-2\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$9\r\nrandomkey\r\n:1\r\n*2\r\n+readonly\r\n+random\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nlolwut\r\n:-1\r\n*1\r\n+readonly\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nrpop\r\n:2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nhkeys\r\n:2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nclient\r\n:-2\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nmodule\r\n:-2\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\nslowlog\r\n:-2\r\n*2\r\n+admin\r\n+random\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\ngeohash\r\n:-2\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nlrange\r\n:4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nping\r\n:-1\r\n*2\r\n+stale\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$8\r\nbitcount\r\n:-2\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\npubsub\r\n:-2\r\n*4\r\n+pubsub\r\n+random\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nrole\r\n:1\r\n*3\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nhget\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nobject\r\n:-2\r\n*2\r\n+readonly\r\n+random\r\n:2\r\n:2\r\n:1\r\n*6\r\n$9\r\nzrevrange\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nhincrby\r\n:4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\nzlexcount\r\n:4\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nscard\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nappend\r\n:3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nhstrlen\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nconfig\r\n:-2\r\n*4\r\n+admin\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nhset\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$16\r\nzrevrangebyscore\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nincr\r\n:2\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nsetbit\r\n:4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\nrpoplpush\r\n:3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:2\r\n:1\r\n*6\r\n$6\r\nxclaim\r\n:-6\r\n*3\r\n+write\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nsinterstore\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$7\r\npublish\r\n:3\r\n*4\r\n+pubsub\r\n+loading\r\n+stale\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nhscan\r\n:-3\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nmulti\r\n:1\r\n*2\r\n+noscript\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$3\r\nset\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nlpushx\r\n:-3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$16\r\nzremrangebyscore\r\n:4\r\n*1\r\n+write\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\npexpireat\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nhdel\r\n:-3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$12\r\nbgrewriteaof\r\n:1\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\nmigrate\r\n:-6\r\n*3\r\n+write\r\n+random\r\n+movablekeys\r\n:0\r\n:0\r\n:0\r\n*6\r\n$9\r\nreplicaof\r\n:3\r\n*3\r\n+admin\r\n+noscript\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\ntouch\r\n:-2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nxsetid\r\n:3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nbitop\r\n:-4\r\n*2\r\n+write\r\n+denyoom\r\n:2\r\n:-1\r\n:1\r\n*6\r\n$6\r\nswapdb\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nsdiff\r\n:-2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$6\r\nlindex\r\n:3\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nwait\r\n:3\r\n*1\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nlrem\r\n:4\r\n*1\r\n+write\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nhsetnx\r\n:4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\ngetrange\r\n:4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nhlen\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\npost\r\n:-1\r\n*2\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$9\r\nsismember\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nunwatch\r\n:1\r\n*2\r\n+noscript\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nlpush\r\n:-3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nscan\r\n:-2\r\n*2\r\n+readonly\r\n+random\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nsmove\r\n:4\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:2\r\n:1\r\n*6\r\n$7\r\ncluster\r\n:-2\r\n*1\r\n+admin\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nbgsave\r\n:-1\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\ndump\r\n:2\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nlatency\r\n:-2\r\n*4\r\n+admin\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$8\r\nbzpopmin\r\n:-3\r\n*3\r\n+write\r\n+noscript\r\n+fast\r\n:1\r\n:-2\r\n:1\r\n*6\r\n$6\r\ngetbit\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nhgetall\r\n:2\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nrename\r\n:3\r\n*1\r\n+write\r\n:1\r\n:2\r\n:1\r\n*6\r\n$9\r\nsubscribe\r\n:-2\r\n*4\r\n+pubsub\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nxdel\r\n:-3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$15\r\nzremrangebyrank\r\n:4\r\n*1\r\n+write\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\ntype\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nscript\r\n:-2\r\n*1\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nhmset\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nsunion\r\n:-2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$4\r\nmget\r\n:-2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$10\r\nbrpoplpush\r\n:4\r\n*3\r\n+write\r\n+denyoom\r\n+noscript\r\n:1\r\n:2\r\n:1\r\n*6\r\n$6\r\ngeoadd\r\n:-5\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\ndecrby\r\n:3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\necho\r\n:2\r\n*1\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\ndbsize\r\n:1\r\n*2\r\n+readonly\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nzcard\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nselect\r\n:2\r\n*2\r\n+loading\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nsadd\r\n:-3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nhost:\r\n:-1\r\n*2\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nsscan\r\n:-3\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$12\r\ngeoradius_ro\r\n:-6\r\n*2\r\n+readonly\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nmonitor\r\n:1\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$14\r\nzremrangebylex\r\n:4\r\n*1\r\n+write\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nsunionstore\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$5\r\nzscan\r\n:-3\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\nreadwrite\r\n:1\r\n*1\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nxgroup\r\n:-2\r\n*2\r\n+write\r\n+denyoom\r\n:2\r\n:2\r\n:1\r\n*6\r\n$5\r\nsetex\r\n:4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nsave\r\n:1\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nhvals\r\n:2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nwatch\r\n:-2\r\n*2\r\n+noscript\r\n+fast\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$7\r\nhexists\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\ninfo\r\n:-1\r\n*3\r\n+random\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\npsync\r\n:3\r\n*3\r\n+readonly\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$11\r\nzrangebylex\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nzadd\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nxlen\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nauth\r\n:2\r\n*4\r\n+noscript\r\n+loading\r\n+stale\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nsrem\r\n:-3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\ngeoradius\r\n:-6\r\n*2\r\n+write\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nexec\r\n:1\r\n*2\r\n+noscript\r\n+skip_monitor\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\npfcount\r\n:-2\r\n*1\r\n+readonly\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$7\r\nzpopmin\r\n:-2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nmove\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nxtrim\r\n:-2\r\n*3\r\n+write\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nasking\r\n:1\r\n*1\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\npttl\r\n:2\r\n*3\r\n+readonly\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nsrandmember\r\n:-2\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nflushall\r\n:-1\r\n*1\r\n+write\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nsort\r\n:-2\r\n*3\r\n+write\r\n+denyoom\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$3\r\ndel\r\n:-2\r\n*1\r\n+write\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$14\r\nrestore-asking\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+asking\r\n:1\r\n:1\r\n:1\r\n*6\r\n$10\r\npsubscribe\r\n:-2\r\n*4\r\n+pubsub\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\ndecr\r\n:2\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nincrby\r\n:3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$14\r\nzrevrangebylex\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nbitfield\r\n:-2\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nexists\r\n:-2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$8\r\nreplconf\r\n:-1\r\n*4\r\n+admin\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\nzincrby\r\n:4\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nblpop\r\n:-3\r\n*2\r\n+write\r\n+noscript\r\n:1\r\n:-2\r\n:1\r\n*6\r\n$4\r\nlpop\r\n:2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$3\r\nttl\r\n:2\r\n*3\r\n+readonly\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nxread\r\n:-4\r\n*3\r\n+readonly\r\n+noscript\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nrpush\r\n:-3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nzrevrank\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nincrbyfloat\r\n:3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nbrpop\r\n:-3\r\n*2\r\n+write\r\n+noscript\r\n:1\r\n:-2\r\n:1\r\n*6\r\n$4\r\nxadd\r\n:-5\r\n*4\r\n+write\r\n+denyoom\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$8\r\nsetrange\r\n:4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$17\r\ngeoradiusbymember\r\n:-5\r\n*2\r\n+write\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nunlink\r\n:-2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$8\r\nexpireat\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\ndebug\r\n:-2\r\n*2\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$20\r\ngeoradiusbymember_ro\r\n:-5\r\n*2\r\n+readonly\r\n+movablekeys\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nlset\r\n:4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nzscore\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nllen\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\ntime\r\n:1\r\n*2\r\n+random\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$8\r\nshutdown\r\n:-1\r\n*4\r\n+admin\r\n+noscript\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\nevalsha\r\n:-3\r\n*2\r\n+noscript\r\n+movablekeys\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nzcount\r\n:4\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nmemory\r\n:-2\r\n*2\r\n+readonly\r\n+random\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nxinfo\r\n:-2\r\n*2\r\n+readonly\r\n+random\r\n:2\r\n:2\r\n:1\r\n*6\r\n$8\r\nxpending\r\n:-3\r\n*2\r\n+readonly\r\n+random\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\neval\r\n:-3\r\n*2\r\n+noscript\r\n+movablekeys\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nxrange\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nrestore\r\n:-4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nzpopmax\r\n:-2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nmset\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:2\r\n*6\r\n$4\r\nspop\r\n:-2\r\n*3\r\n+write\r\n+random\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nltrim\r\n:4\r\n*1\r\n+write\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\nzrank\r\n:3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$9\r\nxrevrange\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$3\r\nget\r\n:2\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nflushdb\r\n:-1\r\n*1\r\n+write\r\n:0\r\n:0\r\n:0\r\n*6\r\n$5\r\nhmget\r\n:-3\r\n*2\r\n+readonly\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nmsetnx\r\n:-3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:-1\r\n:2\r\n*6\r\n$7\r\npersist\r\n:2\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$11\r\nzunionstore\r\n:-4\r\n*3\r\n+write\r\n+denyoom\r\n+movablekeys\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\ncommand\r\n:0\r\n*3\r\n+random\r\n+loading\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$8\r\nrenamenx\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:2\r\n:1\r\n*6\r\n$6\r\nzrange\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\npexpire\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nkeys\r\n:2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:0\r\n:0\r\n:0\r\n*6\r\n$4\r\nzrem\r\n:-3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$5\r\npfadd\r\n:-2\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\npsetex\r\n:4\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$13\r\nzrangebyscore\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$4\r\nsync\r\n:1\r\n*3\r\n+readonly\r\n+admin\r\n+noscript\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\npfdebug\r\n:-3\r\n*1\r\n+write\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\ndiscard\r\n:1\r\n*2\r\n+noscript\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$8\r\nreadonly\r\n:1\r\n*1\r\n+fast\r\n:0\r\n:0\r\n:0\r\n*6\r\n$7\r\ngeodist\r\n:-4\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\ngeopos\r\n:-2\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nbitpos\r\n:-3\r\n*1\r\n+readonly\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nsinter\r\n:-2\r\n*2\r\n+readonly\r\n+sort_for_script\r\n:1\r\n:-1\r\n:1\r\n*6\r\n$6\r\ngetset\r\n:3\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nslaveof\r\n:3\r\n*3\r\n+admin\r\n+noscript\r\n+stale\r\n:0\r\n:0\r\n:0\r\n*6\r\n$6\r\nrpushx\r\n:-3\r\n*3\r\n+write\r\n+denyoom\r\n+fast\r\n:1\r\n:1\r\n:1\r\n*6\r\n$7\r\nlinsert\r\n:5\r\n*2\r\n+write\r\n+denyoom\r\n:1\r\n:1\r\n:1\r\n*6\r\n$6\r\nexpire\r\n:3\r\n*2\r\n+write\r\n+fast\r\n:1\r\n:1\r\n:1\r\n" - c.WriteBulk(res) + c.WriteRaw(res) }