Skip to content

Commands Reference

FrogDB implements 250+ Redis-compatible commands plus FrogDB-specific extensions. For standard Redis command documentation, see redis.io/commands. This page lists all supported commands and documents differences from Redis behavior.

Fully Redis-Compatible

GET, SET, SETNX, SETEX, PSETEX, APPEND, STRLEN, GETRANGE, SETRANGE, GETDEL, GETEX, GETSET, SUBSTR, INCR, DECR, INCRBY, DECRBY, INCRBYFLOAT, MGET, MSET, MSETNX, MSETEX, LCS, DIGEST, DELEX

No behavioral differences from Redis.

Fully Redis-Compatible

HSET, HSETNX, HGET, HDEL, HMSET, HMGET, HGETALL, HKEYS, HVALS, HEXISTS, HLEN, HINCRBY, HINCRBYFLOAT, HSTRLEN, HSCAN, HRANDFIELD

Hash Field Expiry (Redis 7.4+): HEXPIRE, HPEXPIRE, HEXPIREAT, HPEXPIREAT, HTTL, HPTTL, HEXPIRETIME, HPEXPIRETIME, HPERSIST

Redis 8.x: HGETDEL, HGETEX, HSETEX

No behavioral differences from Redis.

Fully Redis-Compatible

LPUSH, RPUSH, LPUSHX, RPUSHX, LPOP, RPOP, LLEN, LRANGE, LINDEX, LSET, LINSERT, LREM, LTRIM, LPOS, LMOVE, RPOPLPUSH, LMPOP

No behavioral differences from Redis.

Fully Redis-Compatible

SADD, SREM, SMEMBERS, SISMEMBER, SMISMEMBER, SCARD, SUNION, SINTER, SDIFF, SUNIONSTORE, SINTERSTORE, SDIFFSTORE, SINTERCARD, SRANDMEMBER, SPOP, SMOVE, SSCAN

No behavioral differences from Redis.

Fully Redis-Compatible

ZADD, ZREM, ZSCORE, ZMSCORE, ZCARD, ZINCRBY, ZRANK, ZREVRANK, ZRANGE, ZRANGEBYSCORE, ZREVRANGE, ZREVRANGEBYSCORE, ZRANGEBYLEX, ZREVRANGEBYLEX, ZCOUNT, ZLEXCOUNT, ZPOPMIN, ZPOPMAX, ZMPOP, ZRANDMEMBER, ZUNION, ZUNIONSTORE, ZINTER, ZINTERSTORE, ZINTERCARD, ZDIFF, ZDIFFSTORE, ZSCAN, ZRANGESTORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREMRANGEBYLEX

No behavioral differences from Redis.

Fully Redis-Compatible

XADD, XLEN, XRANGE, XREVRANGE, XDEL, XTRIM, XREAD, XGROUP (CREATE, SETID, DESTROY, DELCONSUMER, CREATECONSUMER), XREADGROUP, XACK, XPENDING, XCLAIM, XAUTOCLAIM, XINFO (STREAM, GROUPS, CONSUMERS, HELP), XSETID

No behavioral differences from Redis.

FrogDB Only
CommandDescription
XDELEXDelete a stream entry and its backing data atomically
XACKDELAcknowledge and delete a stream entry in one operation
Partial Compatibility

BLPOP, BRPOP, BLMOVE, BLMPOP, BZPOPMIN, BZPOPMAX, BZMPOP, BRPOPLPUSH

Difference: All keys must hash to the same shard. Cross-shard blocking returns -CROSSSLOT. In standalone mode with allow-cross-slot-standalone = true, cross-slot blocking is still not supported because blocking requires a single shard to monitor the keys.

Fully Redis-Compatible

DEL, EXISTS, EXPIRE, PEXPIRE, EXPIREAT, PEXPIREAT, TTL, PTTL, PERSIST, EXPIRETIME, PEXPIRETIME, TYPE, RENAME, RENAMENX, TOUCH, UNLINK, COPY, RANDOMKEY, SCAN, KEYS, SORT, SORT_RO, OBJECT (HELP, ENCODING, REFCOUNT, IDLETIME, FREQ), DUMP, RESTORE

No behavioral differences from Redis.

Fully Redis-Compatible

SETBIT, GETBIT, BITCOUNT, BITOP, BITPOS, BITFIELD, BITFIELD_RO

No behavioral differences from Redis.

Fully Redis-Compatible

GEOADD, GEODIST, GEOHASH, GEOPOS, GEOSEARCH, GEOSEARCHSTORE, GEORADIUS, GEORADIUSBYMEMBER, GEORADIUS_RO, GEORADIUSBYMEMBER_RO

No behavioral differences from Redis.

Fully Redis-Compatible

PFADD, PFCOUNT, PFMERGE

No behavioral differences from Redis.

Partial Compatibility

SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, SPUBLISH, PUBSUB (CHANNELS, NUMSUB, NUMPAT, SHARDCHANNELS, SHARDNUMSUB, HELP)

Standard PUBLISH/SUBSCRIBE and pattern subscriptions (PSUBSCRIBE) work identically to Redis. Differences in cluster mode:

  • Sharded Pub/Sub (SSUBSCRIBE/SPUBLISH): messages are routed to the shard owning the channel’s hash slot
  • Regular PUBLISH: broadcasts to all cluster nodes (same as Redis)
  • Subscription limits: configurable via blocking.max-subscriptions-per-client

See Redis Differences for full cluster-mode behavior.

Partial Compatibility

MULTI, EXEC, DISCARD, WATCH, UNWATCH

BehaviorCluster ModeStandalone Mode
Key restrictionAll keys must hash to the same slotCross-shard transactions supported via VLL
WATCHPer-key version tracking (same as Redis)Per-key version tracking (same as Redis)
AtomicityGuaranteed within a single slotGuaranteed across shards via VLL locking

See Redis Differences for details.

Partial Compatibility

EVAL, EVALSHA, EVAL_RO, EVALSHA_RO, SCRIPT (LOAD, EXISTS, FLUSH), FUNCTION, FCALL, FCALL_RO

BehaviorRedisFrogDB
Key validationUndeclared key access discouraged but allowedUndeclared key access returns an error
Multi-shard scriptsN/A (single-threaded)Not supported — all keys must hash to the same shard
Lua version5.15.4
redis.setresp()SupportedNot supported

See Redis Differences for details.

Fully Redis-Compatible

INFO, PING, ECHO, QUIT, COMMAND (DOCS, COUNT, LIST, INFO, GETKEYS, HELP), HELLO, DBSIZE, FLUSHDB, FLUSHALL, TIME, SHUTDOWN, BGSAVE, LASTSAVE, CONFIG (GET, SET, RESETSTAT), CLIENT (LIST, SETNAME, GETNAME, ID, KILL, INFO, NO-EVICT, UNPAUSE, PAUSE, REPLY, NO-TOUCH, HELP), SLOWLOG (GET, LEN, RESET, HELP), AUTH, ACL (SETUSER, DELUSER, LIST, GETUSER, USERS, CAT, WHOAMI, GENPASS, LOG, SAVE, LOAD, HELP), MEMORY (DOCTOR, HELP, MALLOC-SIZE, PURGE, STATS, USAGE), LATENCY (DOCTOR, GRAPH, HELP, HISTOGRAM, HISTORY, LATEST, RESET), WAIT, ROLE, LOLWUT, MIGRATE, DEBUG (OBJECT, STRUCTSIZE, SLEEP, HASHING)

Fully Redis-Compatible

REPLICAOF, SLAVEOF, PSYNC, REPLCONF

Fully Redis-Compatible

CLUSTER (INFO, NODES, SLOTS, SHARDS, MYID, KEYSLOT, COUNTKEYSINSLOT, GETKEYSINSLOT, SETSLOT, ADDSLOTS, DELSLOTSRANGE, FLUSHSLOTS, FAILOVER, REPLICATE, RESET, LINKS, HELP), ASKING, READONLY, READWRITE

Redis Stack Compatible

BF.RESERVE, BF.ADD, BF.MADD, BF.EXISTS, BF.MEXISTS, BF.INSERT, BF.INFO, BF.CARD, BF.SCANDUMP, BF.LOADCHUNK

Compatible with Redis Stack Bloom filter commands.

Redis Stack Compatible

CF.RESERVE, CF.ADD, CF.ADDNX, CF.INSERT, CF.INSERTNX, CF.EXISTS, CF.MEXISTS, CF.DEL, CF.COUNT, CF.INFO, CF.SCANDUMP, CF.LOADCHUNK

Compatible with Redis Stack Cuckoo filter commands.

Redis Stack Compatible

TD.CREATE, TD.ADD, TD.MERGE, TD.RESET, TD.QUANTILE, TD.CDF, TD.RANK, TD.REVRANK, TD.MIN, TD.MAX, TD.INFO, TD.TRIMMED_MEAN

Compatible with Redis Stack T-Digest commands.

Redis Stack Compatible

CMS.INITBYDIM, CMS.INITBYPROB, CMS.INCRBY, CMS.QUERY, CMS.MERGE, CMS.INFO

Compatible with Redis Stack Count-Min Sketch commands.

Redis Stack Compatible

TOPK.RESERVE, TOPK.ADD, TOPK.INCRBY, TOPK.QUERY, TOPK.COUNT, TOPK.LIST, TOPK.INFO

Compatible with Redis Stack Top-K commands.

Redis Stack Compatible

JSON.SET, JSON.GET, JSON.DEL, JSON.MGET, JSON.TYPE, JSON.NUMINCRBY, JSON.NUMMULTBY, JSON.STRAPPEND, JSON.STRLEN, JSON.ARRAPPEND, JSON.ARRINDEX, JSON.ARRINSERT, JSON.ARRLEN, JSON.ARRPOP, JSON.ARRTRIM, JSON.OBJKEYS, JSON.OBJLEN, JSON.CLEAR, JSON.TOGGLE, JSON.MERGE, JSON.DEBUG

Compatible with Redis Stack JSON commands.

Redis Stack Compatible

TS.CREATE, TS.ALTER, TS.ADD, TS.MADD, TS.INCRBY, TS.DECRBY, TS.DEL, TS.GET, TS.RANGE, TS.REVRANGE, TS.INFO, TS.QUERYINDEX, TS.MGET, TS.MRANGE, TS.MREVRANGE, TS.CREATERULE, TS.DELETERULE

Compatible with Redis Stack TimeSeries commands.

Redis Stack Compatible

FT.CREATE, FT.ALTER, FT.SEARCH, FT.DROP, FT.INFO, FT.LIST, FT.AGGREGATE, FT.HYBRID, FT.SYNUPDATE, FT.SYNDUMP, FT.SUGADD, FT.SUGGET, FT.SUGDEL, FT.SUGLEN, FT.ALIASADD, FT.ALIASDEL, FT.ALIASUPDATE, FT.TAGVALS, FT.DICTADD, FT.DICTDEL, FT.DICTDUMP, FT.CONFIG, FT.SPELLCHECK, FT.CURSOR, FT.EXPLAIN, FT.EXPLAINCLI, FT.PROFILE

Compatible with Redis Stack Search commands.

Redis Stack Compatible

VADD, VSIM, VCARD, VDIM, VEMB, VREM, VGETATTR, VSETATTR, VINFO, VLINKS, VRANDMEMBER, VRANGE

Compatible with Redis 8.x Vector Set commands.

FrogDB Only

FrogDB-specific event sourcing primitives built on streams. Not available in Redis.

CommandDescription
ES.APPEND stream version event [field value ...]Append event with optimistic concurrency check
ES.READ stream start [end] [COUNT n]Read events by version range
ES.REPLAY stream [FROM version] [SNAPSHOT]Replay from beginning or snapshot
ES.INFO streamStream metadata (current version, entry count)
ES.SNAPSHOT stream version dataStore a point-in-time snapshot
ES.ALL [COUNT n]Read global $all stream across all shards

See Event Sourcing Guide for detailed documentation.

FrogDB Only
CommandDescription
STATUSServer health and shard status report
FROGDB_VERSIONBinary and active version information
FROGDB_FINALIZE versionFinalize a rolling upgrade to a version

The following commands are recognized by FrogDB but are not functional. They return descriptive error messages explaining why they are unsupported.

CommandReason
SELECT (non-zero)FrogDB uses a single database (db0). SELECT 0 is accepted.
SWAPDBSingle database model — no databases to swap.
MOVESingle database model — no databases to move between.
SAVEFrogDB uses continuous WAL persistence. Use BGSAVE for snapshots.
BGREWRITEAOFNo AOF — RocksDB manages WAL compaction automatically.
SYNCLegacy replication protocol. Use PSYNC instead.
MODULENo module architecture.
WAITAOFNot yet implemented.