Summary
Nine commands redis-server 8.6.1 answers are -ERR unknown command on Moon. Measured 2026-08-22 on moon 0.8.5+ (fd838ede), --shards 1, by SENDING each one (COMMAND INFO is not authoritative here — see #635):
DUMP <key> -ERR unknown command 'DUMP'
RESTORE <key> 0 <payload> -ERR unknown command 'RESTORE'
HSTRLEN <key> <field> -ERR unknown command 'HSTRLEN'
EVAL_RO <script> 0 -ERR unknown command 'EVAL_RO'
EVALSHA_RO <sha> 0 -ERR unknown command 'EVALSHA_RO'
FAILOVER ABORT -ERR unknown command 'FAILOVER'
MIGRATE host port key 0 100 -ERR unknown command 'MIGRATE'
MODULE LIST -ERR unknown command 'MODULE'
DEBUG DIGEST -ERR DEBUG subcommand 'DIGEST' not supported
Suggested priority
DUMP / RESTORE first, as a pair. They are the serialisation surface: redis-cli --bigkeys-style tooling, redis-dump, key-level backup/copy scripts and every "move this key to that server" workflow use them, and neither half is useful alone. They also need an RDB-object serialiser that Moon already has most of, and a version+CRC footer clients verify.
HSTRLEN next — trivially cheap (HGET length without the transfer), and it is the one on this list a normal application (not tooling) is likely to call.
EVAL_RO / EVALSHA_RO next. Moon already routes scripts by key (#516) and already carries a ScriptAcl; the _RO forms are the same path with writes refused. They matter for read-replica routing: a client that wants to send a script to a replica has no other way to say "this script does not write". Note they are also absent from Moon's registry entirely, so COMMAND INFO EVAL_RO returns nil rather than an entry — the refuse_if_keyspace MONITOR table already has a comment anticipating them.
FAILOVER, MIGRATE, MODULE are cluster/extension surface and should follow whoever owns those areas; MODULE LIST returning *0 is worth doing on its own, since clients call it on connect to feature-detect and an error reads as a broken server.
DEBUG DIGEST is how consistency harnesses compare two datasets in one round trip; nice to have for the crash-matrix suites, not user-facing.
Also seen, deliberately excluded
Redis 8.x additions DELEX, HSETEX, MSETEX are in the same diff. They are new API surface rather than long-standing gaps and want their own decision about whether Moon tracks 8.x additions at all.
LATENCY (all subcommands), CLIENT TRACKINGINFO and FUNCTION STATS / FUNCTION DUMP are already #632.
How this surfaced
The COMMAND LIST diff in #635, taken while fixing the scripts/test-consistency.sh abort (#634).
Summary
Nine commands redis-server 8.6.1 answers are
-ERR unknown commandon Moon. Measured 2026-08-22 onmoon 0.8.5+(fd838ede),--shards 1, by SENDING each one (COMMAND INFOis not authoritative here — see #635):Suggested priority
DUMP/RESTOREfirst, as a pair. They are the serialisation surface:redis-cli --bigkeys-style tooling,redis-dump, key-level backup/copy scripts and every "move this key to that server" workflow use them, and neither half is useful alone. They also need an RDB-object serialiser that Moon already has most of, and a version+CRC footer clients verify.HSTRLENnext — trivially cheap (HGETlength without the transfer), and it is the one on this list a normal application (not tooling) is likely to call.EVAL_RO/EVALSHA_ROnext. Moon already routes scripts by key (#516) and already carries aScriptAcl; the_ROforms are the same path with writes refused. They matter for read-replica routing: a client that wants to send a script to a replica has no other way to say "this script does not write". Note they are also absent from Moon's registry entirely, soCOMMAND INFO EVAL_ROreturns nil rather than an entry — therefuse_if_keyspaceMONITOR table already has a comment anticipating them.FAILOVER,MIGRATE,MODULEare cluster/extension surface and should follow whoever owns those areas;MODULE LISTreturning*0is worth doing on its own, since clients call it on connect to feature-detect and an error reads as a broken server.DEBUG DIGESTis how consistency harnesses compare two datasets in one round trip; nice to have for the crash-matrix suites, not user-facing.Also seen, deliberately excluded
Redis 8.x additions
DELEX,HSETEX,MSETEXare in the same diff. They are new API surface rather than long-standing gaps and want their own decision about whether Moon tracks 8.x additions at all.LATENCY(all subcommands),CLIENT TRACKINGINFOandFUNCTION STATS/FUNCTION DUMPare already #632.How this surfaced
The
COMMAND LISTdiff in #635, taken while fixing thescripts/test-consistency.shabort (#634).