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