feat(introspection): add Excache.Command.Introspection.Catalog
This commit is contained in:
1 parent
01add86cde
commit
bba0243a39
1 file changed
+153
@@ -0,0 +1,153 @@
|
||||
defmodule Excache.Command.Introspection.Catalog do
|
||||
@moduledoc false
|
||||
|
||||
# {arity, flags, firstKey, lastKey, step, group}
|
||||
# Arity counts the command name, negative means "at least this many".
|
||||
# firstKey/lastKey/step are 1 based positions in the full argument vector,
|
||||
# a negative lastKey counts back from the end, zeroes mean "takes no keys".
|
||||
|
||||
@commands %{
|
||||
"PING" => {-1, [:fast], 0, 0, 0, :connection},
|
||||
"ECHO" => {2, [:fast], 0, 0, 0, :connection},
|
||||
"QUIT" => {-1, [:noscript, :loading, :stale, :fast], 0, 0, 0, :connection},
|
||||
"SELECT" => {2, [:loading, :stale, :fast], 0, 0, 0, :connection},
|
||||
"CLIENT" => {-2, [:admin, :noscript, :loading, :stale], 0, 0, 0, :connection},
|
||||
"COMMAND" => {-1, [:loading, :stale], 0, 0, 0, :server},
|
||||
"INFO" => {-1, [:loading, :stale], 0, 0, 0, :server},
|
||||
"CONFIG" => {-2, [:admin, :noscript, :loading, :stale], 0, 0, 0, :server},
|
||||
"MEMORY" => {-2, [:readonly], 0, 0, 0, :server},
|
||||
"DBSIZE" => {1, [:readonly, :fast], 0, 0, 0, :server},
|
||||
"FLUSHDB" => {-1, [:write], 0, 0, 0, :server},
|
||||
"SAVE" => {1, [:admin, :noscript], 0, 0, 0, :server},
|
||||
"BGSAVE" => {-1, [:admin, :noscript], 0, 0, 0, :server},
|
||||
"GET" => {2, [:readonly, :fast], 1, 1, 1, :string},
|
||||
"SET" => {-3, [:write, :denyoom], 1, 1, 1, :string},
|
||||
"SETNX" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"GETSET" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"GETDEL" => {2, [:write, :fast], 1, 1, 1, :string},
|
||||
"APPEND" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"STRLEN" => {2, [:readonly, :fast], 1, 1, 1, :string},
|
||||
"SETRANGE" => {4, [:write, :denyoom], 1, 1, 1, :string},
|
||||
"GETRANGE" => {4, [:readonly], 1, 1, 1, :string},
|
||||
"INCR" => {2, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"DECR" => {2, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"INCRBY" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"DECRBY" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"INCRBYFLOAT" => {3, [:write, :denyoom, :fast], 1, 1, 1, :string},
|
||||
"MSET" => {-3, [:write, :denyoom], 1, -1, 2, :string},
|
||||
"MGET" => {-2, [:readonly, :fast], 1, -1, 1, :string},
|
||||
"DEL" => {-2, [:write], 1, -1, 1, :generic},
|
||||
"UNLINK" => {-2, [:write, :fast], 1, -1, 1, :generic},
|
||||
"EXISTS" => {-2, [:readonly, :fast], 1, -1, 1, :generic},
|
||||
"TOUCH" => {-2, [:readonly, :fast], 1, -1, 1, :generic},
|
||||
"KEYS" => {2, [:readonly], 0, 0, 0, :generic},
|
||||
"SCAN" => {-2, [:readonly], 0, 0, 0, :generic},
|
||||
"TYPE" => {2, [:readonly, :fast], 1, 1, 1, :generic},
|
||||
"OBJECT" => {-2, [:readonly], 0, 0, 0, :generic},
|
||||
"RENAME" => {3, [:write], 1, 2, 1, :generic},
|
||||
"RENAMENX" => {3, [:write, :fast], 1, 2, 1, :generic},
|
||||
"COPY" => {-3, [:write, :denyoom], 1, 2, 1, :generic},
|
||||
"EXPIRE" => {-3, [:write, :fast], 1, 1, 1, :generic},
|
||||
"PEXPIRE" => {-3, [:write, :fast], 1, 1, 1, :generic},
|
||||
"EXPIREAT" => {-3, [:write, :fast], 1, 1, 1, :generic},
|
||||
"EXPIRETIME" => {2, [:readonly, :fast], 1, 1, 1, :generic},
|
||||
"PEXPIRETIME" => {2, [:readonly, :fast], 1, 1, 1, :generic},
|
||||
"TTL" => {2, [:readonly, :fast], 1, 1, 1, :generic},
|
||||
"PTTL" => {2, [:readonly, :fast], 1, 1, 1, :generic},
|
||||
"PERSIST" => {2, [:write, :fast], 1, 1, 1, :generic},
|
||||
"LPUSH" => {-3, [:write, :denyoom, :fast], 1, 1, 1, :list},
|
||||
"RPUSH" => {-3, [:write, :denyoom, :fast], 1, 1, 1, :list},
|
||||
"LPOP" => {-2, [:write, :fast], 1, 1, 1, :list},
|
||||
"RPOP" => {-2, [:write, :fast], 1, 1, 1, :list},
|
||||
"LRANGE" => {4, [:readonly], 1, 1, 1, :list},
|
||||
"LLEN" => {2, [:readonly, :fast], 1, 1, 1, :list},
|
||||
"LINDEX" => {3, [:readonly], 1, 1, 1, :list},
|
||||
"LSET" => {4, [:write, :denyoom], 1, 1, 1, :list},
|
||||
"LREM" => {4, [:write], 1, 1, 1, :list},
|
||||
"LTRIM" => {4, [:write], 1, 1, 1, :list},
|
||||
"LINSERT" => {5, [:write, :denyoom], 1, 1, 1, :list},
|
||||
"LPOS" => {-3, [:readonly], 1, 1, 1, :list},
|
||||
"RPOPLPUSH" => {3, [:write, :denyoom], 1, 2, 1, :list},
|
||||
"BLPOP" => {-3, [:write, :noscript, :blocking], 1, -2, 1, :list},
|
||||
"BRPOP" => {-3, [:write, :noscript, :blocking], 1, -2, 1, :list},
|
||||
"BLMOVE" => {6, [:write, :denyoom, :noscript, :blocking], 1, 2, 1, :list},
|
||||
"BRPOPLPUSH" => {4, [:write, :denyoom, :noscript, :blocking], 1, 2, 1, :list},
|
||||
"BLMPOP" => {-5, [:write, :noscript, :blocking, :movablekeys], 0, 0, 0, :list},
|
||||
"HSET" => {-4, [:write, :denyoom, :fast], 1, 1, 1, :hash},
|
||||
"HSETNX" => {4, [:write, :denyoom, :fast], 1, 1, 1, :hash},
|
||||
"HGET" => {3, [:readonly, :fast], 1, 1, 1, :hash},
|
||||
"HMGET" => {-3, [:readonly, :fast], 1, 1, 1, :hash},
|
||||
"HDEL" => {-3, [:write, :fast], 1, 1, 1, :hash},
|
||||
"HGETALL" => {2, [:readonly], 1, 1, 1, :hash},
|
||||
"HKEYS" => {2, [:readonly], 1, 1, 1, :hash},
|
||||
"HVALS" => {2, [:readonly], 1, 1, 1, :hash},
|
||||
"HLEN" => {2, [:readonly, :fast], 1, 1, 1, :hash},
|
||||
"HEXISTS" => {3, [:readonly, :fast], 1, 1, 1, :hash},
|
||||
"HINCRBY" => {4, [:write, :denyoom, :fast], 1, 1, 1, :hash},
|
||||
"HSCAN" => {-3, [:readonly], 1, 1, 1, :hash},
|
||||
"SADD" => {-3, [:write, :denyoom, :fast], 1, 1, 1, :set},
|
||||
"SREM" => {-3, [:write, :fast], 1, 1, 1, :set},
|
||||
"SMEMBERS" => {2, [:readonly], 1, 1, 1, :set},
|
||||
"SISMEMBER" => {3, [:readonly, :fast], 1, 1, 1, :set},
|
||||
"SMISMEMBER" => {-3, [:readonly, :fast], 1, 1, 1, :set},
|
||||
"SCARD" => {2, [:readonly, :fast], 1, 1, 1, :set},
|
||||
"SPOP" => {-2, [:write, :fast], 1, 1, 1, :set},
|
||||
"SRANDMEMBER" => {-2, [:readonly], 1, 1, 1, :set},
|
||||
"SMOVE" => {4, [:write, :fast], 1, 2, 1, :set},
|
||||
"SINTER" => {-2, [:readonly], 1, -1, 1, :set},
|
||||
"SUNION" => {-2, [:readonly], 1, -1, 1, :set},
|
||||
"SDIFF" => {-2, [:readonly], 1, -1, 1, :set},
|
||||
"SINTERCARD" => {-3, [:readonly, :movablekeys], 0, 0, 0, :set},
|
||||
"SINTERSTORE" => {-3, [:write, :denyoom], 1, -1, 1, :set},
|
||||
"SUNIONSTORE" => {-3, [:write, :denyoom], 1, -1, 1, :set},
|
||||
"SDIFFSTORE" => {-3, [:write, :denyoom], 1, -1, 1, :set},
|
||||
"SSCAN" => {-3, [:readonly], 1, 1, 1, :set},
|
||||
"ZADD" => {-4, [:write, :denyoom, :fast], 1, 1, 1, :zset},
|
||||
"ZINCRBY" => {4, [:write, :denyoom, :fast], 1, 1, 1, :zset},
|
||||
"ZREM" => {-3, [:write, :fast], 1, 1, 1, :zset},
|
||||
"ZSCORE" => {3, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZMSCORE" => {-3, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZRANK" => {3, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZREVRANK" => {3, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZCARD" => {2, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZCOUNT" => {4, [:readonly, :fast], 1, 1, 1, :zset},
|
||||
"ZRANGE" => {-4, [:readonly], 1, 1, 1, :zset},
|
||||
"ZREVRANGE" => {-4, [:readonly], 1, 1, 1, :zset},
|
||||
"ZRANGEBYSCORE" => {-4, [:readonly], 1, 1, 1, :zset},
|
||||
"ZPOPMIN" => {-2, [:write, :fast], 1, 1, 1, :zset},
|
||||
"ZPOPMAX" => {-2, [:write, :fast], 1, 1, 1, :zset},
|
||||
"ZSCAN" => {-3, [:readonly], 1, 1, 1, :zset},
|
||||
"XADD" => {-5, [:write, :denyoom, :fast], 1, 1, 1, :stream},
|
||||
"XLEN" => {2, [:readonly, :fast], 1, 1, 1, :stream},
|
||||
"XRANGE" => {-4, [:readonly], 1, 1, 1, :stream},
|
||||
"XREVRANGE" => {-4, [:readonly], 1, 1, 1, :stream},
|
||||
"XDEL" => {-3, [:write, :fast], 1, 1, 1, :stream},
|
||||
"XTRIM" => {-4, [:write], 1, 1, 1, :stream},
|
||||
"XSETID" => {-3, [:write, :denyoom, :fast], 1, 1, 1, :stream},
|
||||
"XACK" => {-4, [:write, :fast], 1, 1, 1, :stream},
|
||||
"XPENDING" => {-3, [:readonly], 1, 1, 1, :stream},
|
||||
"XCLAIM" => {-6, [:write, :fast], 1, 1, 1, :stream},
|
||||
"XAUTOCLAIM" => {-7, [:write, :fast], 1, 1, 1, :stream},
|
||||
"XREAD" => {-4, [:readonly, :blocking, :movablekeys], 0, 0, 0, :stream},
|
||||
"XREADGROUP" => {-7, [:write, :blocking, :movablekeys], 0, 0, 0, :stream},
|
||||
"XINFO" => {-2, [:readonly], 0, 0, 0, :stream},
|
||||
"XGROUP" => {-2, [:write, :denyoom], 0, 0, 0, :stream},
|
||||
"SETBIT" => {4, [:write, :denyoom], 1, 1, 1, :bitmap},
|
||||
"GETBIT" => {3, [:readonly, :fast], 1, 1, 1, :bitmap},
|
||||
"BITCOUNT" => {-2, [:readonly], 1, 1, 1, :bitmap},
|
||||
"BITPOS" => {-3, [:readonly], 1, 1, 1, :bitmap},
|
||||
"BITFIELD" => {-2, [:write, :denyoom], 1, 1, 1, :bitmap},
|
||||
"BITOP" => {-4, [:write, :denyoom], 2, -1, 1, :bitmap},
|
||||
"PFADD" => {-2, [:write, :denyoom, :fast], 1, 1, 1, :hyperloglog},
|
||||
"PFCOUNT" => {-2, [:readonly], 1, -1, 1, :hyperloglog},
|
||||
"PFMERGE" => {-2, [:write, :denyoom], 1, -1, 1, :hyperloglog},
|
||||
"SUBSCRIBE" => {-2, [:pubsub, :noscript, :loading, :stale, :fast], 0, 0, 0, :pubsub},
|
||||
"UNSUBSCRIBE" => {-1, [:pubsub, :noscript, :loading, :stale, :fast], 0, 0, 0, :pubsub},
|
||||
"PUBLISH" => {3, [:pubsub, :loading, :stale, :fast], 0, 0, 0, :pubsub},
|
||||
"MULTI" => {1, [:noscript, :loading, :stale, :fast], 0, 0, 0, :transactions},
|
||||
"EXEC" => {1, [:noscript, :loading, :stale], 0, 0, 0, :transactions},
|
||||
"DISCARD" => {1, [:noscript, :loading, :stale, :fast], 0, 0, 0, :transactions},
|
||||
"WATCH" => {-2, [:noscript, :loading, :stale, :fast], 1, -1, 1, :transactions},
|
||||
"UNWATCH" => {1, [:noscript, :loading, :stale, :fast], 0, 0, 0, :transactions}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user