Skip to content

Coverage matrix

This is the canonical map of logical operations to wire commands. Each row describes one thing a client can ask the server to do; each column shows how that operation is expressed in a given protocol.

Cell value Meaning
name Concrete command, opcode, or meta form (clickable)
Not applicable to this protocol
stub Recognised but returns synthetic output (no real backing)
no Not implemented; the command is rejected or ignored
Operation memcached text memcached binary memcached meta Redis RESP2
Store value unconditionally set 0x01 SET / 0x11 SETQ ms M=S SET
Store only if absent add 0x02 ADD / 0x12 ADDQ ms M=E SET NX
Store only if present replace 0x03 REPLACE / 0x13 REPLACEQ ms M=R SET XX
Append to existing value append 0x0e APPEND / 0x19 APPENDQ ms M=A no
Prepend to existing value prepend 0x0f PREPEND / 0x1a PREPENDQ ms M=P no
Compare-and-swap cas via CAS field in header ms C(token)
Fetch by key get 0x00 GET / 0x09 GETQ / 0x0c GETK / 0x0d GETKQ mg v GET
Fetch with CAS gets implicit (CAS in header) mg c v
Fetch and refresh TTL gat / gats 0x1d GAT / 0x1e GATQ / 0x23 GATK / 0x24 GATKQ mg v T(token) no
Refresh TTL without reading value touch 0x1c TOUCH mg T(token) no
Increment numeric value incr 0x05 INCREMENT / 0x15 INCREMENTQ ma M=I no
Decrement numeric value decr 0x06 DECREMENT / 0x16 DECREMENTQ ma M=D no
Auto-vivify on miss 0x05/0x06 with exptime!=0xFFFFFFFF mg N(token) / ma N J
Delete key delete 0x04 DELETE / 0x14 DELETEQ md DEL / UNLINK
Mark stale (recache coordination) md I / ms I
Drop all entries flush_all 0x08 FLUSH / 0x18 FLUSHQ FLUSHDB / FLUSHALL
Check key existence implicit via get implicit via 0x00 mg h EXISTS
Server version version 0x0b VERSION inside INFO
Server stats stats + sub-commands 0x10 STAT per-entry via me INFO
Set memory limit at runtime cache_memlimit
Verbosity dial verbosity (no-op) 0x1b VERBOSITY (no-op)
Close connection quit 0x07 QUIT / 0x17 QUITQ QUIT
Heartbeat 0x0a NOOP mn PING
Pipeline sync barrier mn
Slab rebalance stub (slabs)
LRU tuning stub (lru)
LRU crawler control stub (lru_crawler)
Event watch streaming no
Authentication SASL rejected AUTH rejected
Echo ECHO
Server handshake HELLO
Command introspection COMMAND (empty array)
Select database SELECT accepted (no-op, single keyspace)
Client connection setup CLIENT stub
Runtime config probe CONFIG stub
Pub / sub no
Scripting (EVAL) no
Streams / sorted sets / hashes no

Reading the matrix

  • A row marked no in every column is an operation fastcached does not support in any protocol.
  • A cell marked – means the protocol doesn't have a way to express the operation, so the absence is not a fastcached limitation.
  • "stub" cells return well-shaped responses (OK) so capability-probing clients don't error out, but no underlying state is changed. See the linked command page for each stub's exact behavior.