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.
String
Section titled “String”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-CompatibleHSET, 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-CompatibleLPUSH, RPUSH, LPUSHX, RPUSHX, LPOP, RPOP, LLEN, LRANGE, LINDEX, LSET, LINSERT, LREM, LTRIM, LPOS, LMOVE, RPOPLPUSH, LMPOP
No behavioral differences from Redis.
Fully Redis-CompatibleSADD, SREM, SMEMBERS, SISMEMBER, SMISMEMBER, SCARD, SUNION, SINTER, SDIFF, SUNIONSTORE, SINTERSTORE, SDIFFSTORE, SINTERCARD, SRANDMEMBER, SPOP, SMOVE, SSCAN
No behavioral differences from Redis.
Sorted Set
Section titled “Sorted Set”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.
Stream
Section titled “Stream”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.
Stream Extensions
Section titled “Stream Extensions”| Command | Description |
|---|---|
XDELEX | Delete a stream entry and its backing data atomically |
XACKDEL | Acknowledge and delete a stream entry in one operation |
Blocking Commands
Section titled “Blocking Commands”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.
Key Commands
Section titled “Key Commands”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.
Bitmap
Section titled “Bitmap”SETBIT, GETBIT, BITCOUNT, BITOP, BITPOS, BITFIELD, BITFIELD_RO
No behavioral differences from Redis.
Fully Redis-CompatibleGEOADD, GEODIST, GEOHASH, GEOPOS, GEOSEARCH, GEOSEARCHSTORE, GEORADIUS, GEORADIUSBYMEMBER, GEORADIUS_RO, GEORADIUSBYMEMBER_RO
No behavioral differences from Redis.
HyperLogLog
Section titled “HyperLogLog”PFADD, PFCOUNT, PFMERGE
No behavioral differences from Redis.
Pub/Sub
Section titled “Pub/Sub”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.
Transactions
Section titled “Transactions”MULTI, EXEC, DISCARD, WATCH, UNWATCH
| Behavior | Cluster Mode | Standalone Mode |
|---|---|---|
| Key restriction | All keys must hash to the same slot | Cross-shard transactions supported via VLL |
| WATCH | Per-key version tracking (same as Redis) | Per-key version tracking (same as Redis) |
| Atomicity | Guaranteed within a single slot | Guaranteed across shards via VLL locking |
See Redis Differences for details.
Scripting
Section titled “Scripting”EVAL, EVALSHA, EVAL_RO, EVALSHA_RO, SCRIPT (LOAD, EXISTS, FLUSH), FUNCTION, FCALL, FCALL_RO
| Behavior | Redis | FrogDB |
|---|---|---|
| Key validation | Undeclared key access discouraged but allowed | Undeclared key access returns an error |
| Multi-shard scripts | N/A (single-threaded) | Not supported — all keys must hash to the same shard |
| Lua version | 5.1 | 5.4 |
redis.setresp() | Supported | Not supported |
See Redis Differences for details.
Server
Section titled “Server”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)
Replication
Section titled “Replication”REPLICAOF, SLAVEOF, PSYNC, REPLCONF
Cluster
Section titled “Cluster”CLUSTER (INFO, NODES, SLOTS, SHARDS, MYID, KEYSLOT, COUNTKEYSINSLOT, GETKEYSINSLOT, SETSLOT, ADDSLOTS, DELSLOTSRANGE, FLUSHSLOTS, FAILOVER, REPLICATE, RESET, LINKS, HELP), ASKING, READONLY, READWRITE
Bloom Filter
Section titled “Bloom Filter”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.
Cuckoo Filter
Section titled “Cuckoo Filter”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.
T-Digest
Section titled “T-Digest”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.
Count-Min Sketch
Section titled “Count-Min Sketch”CMS.INITBYDIM, CMS.INITBYPROB, CMS.INCRBY, CMS.QUERY, CMS.MERGE, CMS.INFO
Compatible with Redis Stack Count-Min Sketch commands.
Redis Stack CompatibleTOPK.RESERVE, TOPK.ADD, TOPK.INCRBY, TOPK.QUERY, TOPK.COUNT, TOPK.LIST, TOPK.INFO
Compatible with Redis Stack Top-K commands.
Redis Stack CompatibleJSON.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.
TimeSeries
Section titled “TimeSeries”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.
Search
Section titled “Search”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.
Vector Set
Section titled “Vector Set”VADD, VSIM, VCARD, VDIM, VEMB, VREM, VGETATTR, VSETATTR, VINFO, VLINKS, VRANDMEMBER, VRANGE
Compatible with Redis 8.x Vector Set commands.
Event Sourcing
Section titled “Event Sourcing”FrogDB-specific event sourcing primitives built on streams. Not available in Redis.
| Command | Description |
|---|---|
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 stream | Stream metadata (current version, entry count) |
ES.SNAPSHOT stream version data | Store a point-in-time snapshot |
ES.ALL [COUNT n] | Read global $all stream across all shards |
See Event Sourcing Guide for detailed documentation.
FrogDB Server Extensions
Section titled “FrogDB Server Extensions”| Command | Description |
|---|---|
STATUS | Server health and shard status report |
FROGDB_VERSION | Binary and active version information |
FROGDB_FINALIZE version | Finalize a rolling upgrade to a version |
Unsupported
Section titled “Unsupported”The following commands are recognized by FrogDB but are not functional. They return descriptive error messages explaining why they are unsupported.
| Command | Reason |
|---|---|
SELECT (non-zero) | FrogDB uses a single database (db0). SELECT 0 is accepted. |
SWAPDB | Single database model — no databases to swap. |
MOVE | Single database model — no databases to move between. |
SAVE | FrogDB uses continuous WAL persistence. Use BGSAVE for snapshots. |
BGREWRITEAOF | No AOF — RocksDB manages WAL compaction automatically. |
SYNC | Legacy replication protocol. Use PSYNC instead. |
MODULE | No module architecture. |
WAITAOF | Not yet implemented. |