Compatibility with upstream¶
A per-protocol scorecard against the latest released versions of the upstream projects.
memcached (text + binary + meta)¶
Reference: memcached 1.6.x.
| Area | Status |
|---|---|
| Text storage commands | Full |
Text retrieval commands (get / gets) |
Full |
Text TTL family (touch / gat / gats) |
Full |
| Text deletion | Full |
Text arithmetic (incr / decr) |
Full |
Text flush_all (with delay) |
Full |
Text stats (no sub) |
Full |
Text stats settings |
Synthetic (subset of settings) |
Text stats items |
Synthetic (single LRU class) |
Text stats slabs |
Synthetic (one virtual class) |
Text stats sizes |
Synthetic (single bucket) |
Text stats conns |
Empty (no connection registry) |
Text stats reset |
Acknowledged, no-op |
Text cache_memlimit |
Full |
Text verbosity |
No-op (fastcached uses ILogger) |
Text shutdown |
Not supported |
Text slabs reassign / slabs automove |
Stub returns OK |
Text lru tune / lru mode |
Stub returns OK |
Text lru_crawler |
Stub returns OK |
Text watch |
Not supported (see Known limitations) |
Binary Get / GetQ / GetK / GetKQ |
Full |
Binary Set / Add / Replace and Q variants |
Full |
Binary Append / Prepend and Q variants |
Full |
Binary Delete / DeleteQ |
Full |
Binary Increment / Decrement (+ auto-vivify) |
Full |
Binary Touch / GAT / GATQ / GATK / GATKQ |
Full |
Binary Flush / FlushQ |
Full |
Binary Version / NoOp / Quit / QuitQ |
Full |
Binary Stat |
Full |
Binary Verbosity |
Accepted, no-op |
| Binary SASL | Rejected with AuthError |
Meta mg / ms / md / ma / me / mn |
Full |
Meta flags (c f h k l O q s t u v T N on mg; c C F I k M N O q s T on ms; C I k O q T on md; c C D J k M N O q t T v on ma) |
Full |
Meta flags b (base64 key) / E (CAS override) / R (recache) / x (keep-metadata) |
Accepted but ignored (parsed past, not acted on) |
Redis (RESP2)¶
Reference: Redis 7.x, RESP2 subset only.
| Area | Status |
|---|---|
GET |
Full |
SET (with EX, PX, NX, XX) |
Full |
SETEX |
Full |
PSETEX |
Full |
DEL |
Full |
UNLINK |
Full (synonym for DEL) |
EXISTS |
Full |
PING |
Full |
ECHO |
Full |
INFO |
Full |
HELLO 2 |
Full |
HELLO 3 (RESP3) |
Full -- upgrades the connection |
COMMAND / COUNT / INFO |
Full over fastcached's own table |
COMMAND DOCS |
Empty array (no metadata carried) |
FLUSHDB / FLUSHALL |
Full |
QUIT |
Full |
RESET |
Full |
AUTH |
Full against --requirepass; "no password is set" when unset |
SELECT |
No-op for any index (single keyspace; always +OK) |
CLIENT |
Connection-setup stub (SETNAME/SETINFO/ID/GETNAME) |
CONFIG |
Stub (CONFIG GET reports 0 per param; others reply +OK) |
TTL / PTTL / EXPIRE family / PERSIST |
Full |
MGET / MSET / MSETNX |
Full |
INCR / DECR / INCRBY / DECRBY / INCRBYFLOAT |
Full |
| Sets | Partial -- 7 verbs; no set algebra |
| Streams | Full enough for consumer groups (15 verbs) |
| Pub / sub | Full -- plus keyspace notifications |
MULTI / EXEC / DISCARD / WATCH / UNWATCH |
Full |
DEBUG PROTOCOL / LOLWUT |
Full |
Lists, hashes, sorted sets, scripting, KEYS / SCAN |
Not supported (see Unsupported Redis commands) |
This is a deliberate subset chosen to cover the sccache /
key-value-cache use case. Expanding the Redis surface is tracked as a
separate effort and not included in the current scope.
What "full" means here¶
For an item marked Full, fastcached parses and honors the command as the upstream spec describes — including the edge cases listed in the per-command page. Where fastcached's storage model differs from upstream's (no slabs, single keyspace, no SASL backend), the affected commands are marked Synthetic, Stub, Rejected, or Not supported rather than Full.