feat(command): add extended command router
This commit is contained in:
1 parent
a6b04f9829
commit
17619bef44
1 file changed
+39
@@ -0,0 +1,39 @@
|
|||||||
|
defmodule Excache.Command.Extended do
|
||||||
|
@moduledoc false
|
||||||
|
|
||||||
|
alias Excache.Command.{Streams, Bitmaps, HyperLogLog, Keyspace}
|
||||||
|
|
||||||
|
@stream ~w(XADD XLEN XRANGE XREVRANGE XDEL XTRIM XSETID XREAD XINFO XGROUP
|
||||||
|
XREADGROUP XACK XPENDING XCLAIM XAUTOCLAIM)
|
||||||
|
|
||||||
|
@bitmap ~w(SETBIT GETBIT BITCOUNT BITPOS BITOP BITFIELD)
|
||||||
|
|
||||||
|
@hll ~w(PFADD PFCOUNT PFMERGE)
|
||||||
|
|
||||||
|
@keyspace ~w(SCAN HSCAN SSCAN ZSCAN OBJECT LPOS
|
||||||
|
STRLEN SETRANGE GETRANGE SETNX GETDEL INCRBYFLOAT HSETNX HMGET
|
||||||
|
SMISMEMBER SINTERCARD SPOP SRANDMEMBER SMOVE
|
||||||
|
LREM LSET LTRIM LINSERT RPOPLPUSH
|
||||||
|
ZCOUNT ZREVRANGE ZREVRANK ZMSCORE
|
||||||
|
RENAME RENAMENX COPY TOUCH UNLINK EXPIREAT EXPIRETIME PEXPIRETIME)
|
||||||
|
|
||||||
|
def dispatch(name, args, state) do
|
||||||
|
cond do
|
||||||
|
name in @stream -> Streams.dispatch(name, args, state)
|
||||||
|
name in @bitmap -> Bitmaps.dispatch(name, args, state)
|
||||||
|
name in @hll -> HyperLogLog.dispatch(name, args, state)
|
||||||
|
name in @keyspace -> Keyspace.dispatch(name, args, state)
|
||||||
|
true -> :unhandled
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def command_names, do: @stream ++ @bitmap ++ @hll ++ @keyspace
|
||||||
|
|
||||||
|
def write_command_names do
|
||||||
|
~w(XADD XDEL XTRIM XSETID XGROUP XREADGROUP XACK XCLAIM XAUTOCLAIM
|
||||||
|
SETBIT BITOP BITFIELD PFADD PFMERGE
|
||||||
|
SETRANGE SETNX GETDEL INCRBYFLOAT HSETNX SPOP SMOVE
|
||||||
|
LREM LSET LTRIM LINSERT RPOPLPUSH
|
||||||
|
RENAME RENAMENX COPY UNLINK EXPIREAT)
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in new issue
Block a user