Redis RESP3 Compatibility Matrix
Comprehensive compatibility reference for HeliosDB’s Redis RESP3 implementation.
Overall Compatibility: 90%
| Category | Coverage | Status |
|---|
| RESP3 Protocol | 100% | Complete |
| String Commands | 100% | Complete |
| List Commands | 100% | Complete |
| Set Commands | 100% | Complete |
| Sorted Set Commands | 100% | Complete |
| Hash Commands | 100% | Complete |
| Pub/Sub | 100% | Complete |
| Streams | 100% | Complete |
| Transactions | 100% | Complete |
| Scripting | 80% | Core functions |
Protocol Support
RESP3 Features
| Feature | Status | Notes |
|---|
| HELLO Command | Supported | Protocol negotiation |
| Push Types | Supported | Server-initiated messages |
| Set Type | Supported | Unordered collections |
| Double Type | Supported | Native floats |
| Boolean Type | Supported | True/false values |
| Big Number | Supported | Large integers |
| Verbatim String | Supported | Format-tagged strings |
| Map Type | Supported | Key-value pairs |
| Attribute Type | Supported | Metadata |
Connection Commands
| Command | Status | Notes |
|---|
| HELLO | Supported | RESP3 negotiation |
| AUTH | Supported | Password + ACL |
| SELECT | Supported | Database selection |
| PING | Supported | Connection test |
| ECHO | Supported | Echo message |
| QUIT | Supported | Close connection |
| CLIENT | Supported | Client management |
| CONFIG | Partial | Read-only settings |
String Commands
| Command | Status | Notes |
|---|
| SET | Supported | All options (EX, PX, NX, XX, KEEPTTL) |
| GET | Supported | |
| SETNX | Supported | Set if not exists |
| SETEX | Supported | Set with expiration |
| PSETEX | Supported | Set with ms expiration |
| MSET | Supported | Multiple set |
| MGET | Supported | Multiple get |
| MSETNX | Supported | Multiple set if none exist |
| INCR | Supported | Increment |
| INCRBY | Supported | Increment by value |
| INCRBYFLOAT | Supported | Increment by float |
| DECR | Supported | Decrement |
| DECRBY | Supported | Decrement by value |
| APPEND | Supported | Append to string |
| STRLEN | Supported | String length |
| GETRANGE | Supported | Substring |
| SETRANGE | Supported | Replace substring |
| GETSET | Supported | Get and set atomically |
| GETEX | Supported | Get and set expiration |
| GETDEL | Supported | Get and delete |
List Commands
| Command | Status | Notes |
|---|
| LPUSH | Supported | Left push |
| RPUSH | Supported | Right push |
| LPUSHX | Supported | Left push if exists |
| RPUSHX | Supported | Right push if exists |
| LPOP | Supported | Left pop |
| RPOP | Supported | Right pop |
| BLPOP | Supported | Blocking left pop |
| BRPOP | Supported | Blocking right pop |
| LRANGE | Supported | Range query |
| LLEN | Supported | List length |
| LINDEX | Supported | Get by index |
| LSET | Supported | Set by index |
| LINSERT | Supported | Insert before/after |
| LTRIM | Supported | Trim to range |
| LREM | Supported | Remove elements |
| LPOS | Supported | Find position |
| LMOVE | Supported | Move between lists |
| BLMOVE | Supported | Blocking move |
Set Commands
| Command | Status | Notes |
|---|
| SADD | Supported | Add members |
| SREM | Supported | Remove members |
| SMEMBERS | Supported | Get all members |
| SISMEMBER | Supported | Check membership |
| SMISMEMBER | Supported | Check multiple |
| SCARD | Supported | Set cardinality |
| SPOP | Supported | Pop random |
| SRANDMEMBER | Supported | Random member |
| SMOVE | Supported | Move between sets |
| SUNION | Supported | Union |
| SUNIONSTORE | Supported | Union and store |
| SINTER | Supported | Intersection |
| SINTERSTORE | Supported | Intersection and store |
| SINTERCARD | Supported | Intersection cardinality |
| SDIFF | Supported | Difference |
| SDIFFSTORE | Supported | Difference and store |
| SSCAN | Supported | Iterate set |
Sorted Set Commands
| Command | Status | Notes |
|---|
| ZADD | Supported | All options (NX, XX, GT, LT, CH) |
| ZREM | Supported | Remove members |
| ZINCRBY | Supported | Increment score |
| ZSCORE | Supported | Get score |
| ZMSCORE | Supported | Get multiple scores |
| ZRANK | Supported | Get rank |
| ZREVRANK | Supported | Get reverse rank |
| ZRANGE | Supported | Range query |
| ZREVRANGE | Supported | Reverse range |
| ZRANGEBYSCORE | Supported | Range by score |
| ZREVRANGEBYSCORE | Supported | Reverse range by score |
| ZRANGEBYLEX | Supported | Range by lex |
| ZCOUNT | Supported | Count in score range |
| ZLEXCOUNT | Supported | Count in lex range |
| ZCARD | Supported | Cardinality |
| ZPOPMIN | Supported | Pop minimum |
| ZPOPMAX | Supported | Pop maximum |
| BZPOPMIN | Supported | Blocking pop min |
| BZPOPMAX | Supported | Blocking pop max |
| ZUNION | Supported | Union |
| ZUNIONSTORE | Supported | Union and store |
| ZINTER | Supported | Intersection |
| ZINTERSTORE | Supported | Intersection and store |
| ZDIFF | Supported | Difference |
| ZDIFFSTORE | Supported | Difference and store |
| ZSCAN | Supported | Iterate sorted set |
Hash Commands
| Command | Status | Notes |
|---|
| HSET | Supported | Set field(s) |
| HGET | Supported | Get field |
| HMSET | Supported | Set multiple fields |
| HMGET | Supported | Get multiple fields |
| HGETALL | Supported | Get all fields |
| HDEL | Supported | Delete field(s) |
| HEXISTS | Supported | Check field exists |
| HLEN | Supported | Hash length |
| HKEYS | Supported | Get all keys |
| HVALS | Supported | Get all values |
| HINCRBY | Supported | Increment field |
| HINCRBYFLOAT | Supported | Increment by float |
| HSETNX | Supported | Set if not exists |
| HSTRLEN | Supported | Field string length |
| HRANDFIELD | Supported | Random field(s) |
| HSCAN | Supported | Iterate hash |
Stream Commands
| Command | Status | Notes |
|---|
| XADD | Supported | Add entry |
| XREAD | Supported | Read entries |
| XREADGROUP | Supported | Consumer group read |
| XRANGE | Supported | Range query |
| XREVRANGE | Supported | Reverse range |
| XLEN | Supported | Stream length |
| XINFO | Supported | Stream info |
| XGROUP | Supported | Consumer group management |
| XACK | Supported | Acknowledge entry |
| XCLAIM | Supported | Claim pending entry |
| XAUTOCLAIM | Supported | Auto-claim |
| XPENDING | Supported | Pending entries |
| XTRIM | Supported | Trim stream |
| XDEL | Supported | Delete entries |
Pub/Sub Commands
| Command | Status | Notes |
|---|
| SUBSCRIBE | Supported | Subscribe to channels |
| UNSUBSCRIBE | Supported | Unsubscribe |
| PSUBSCRIBE | Supported | Pattern subscribe |
| PUNSUBSCRIBE | Supported | Pattern unsubscribe |
| PUBLISH | Supported | Publish message |
| PUBSUB | Supported | Introspection |
Transaction Commands
| Command | Status | Notes |
|---|
| MULTI | Supported | Start transaction |
| EXEC | Supported | Execute transaction |
| DISCARD | Supported | Discard transaction |
| WATCH | Supported | Optimistic locking |
| UNWATCH | Supported | Unwatch keys |
Scripting Commands
| Command | Status | Notes |
|---|
| EVAL | Supported | Execute Lua script |
| EVALSHA | Supported | Execute by SHA |
| SCRIPT LOAD | Supported | Load script |
| SCRIPT EXISTS | Supported | Check script exists |
| SCRIPT FLUSH | Supported | Flush scripts |
| SCRIPT KILL | Supported | Kill running script |
| FUNCTION | Partial | Limited support |
Key Commands
| Command | Status | Notes |
|---|
| DEL | Supported | Delete keys |
| UNLINK | Supported | Async delete |
| EXISTS | Supported | Check existence |
| TYPE | Supported | Get key type |
| KEYS | Supported | Find keys (use SCAN) |
| SCAN | Supported | Iterate keyspace |
| RENAME | Supported | Rename key |
| RENAMENX | Supported | Rename if not exists |
| COPY | Supported | Copy key |
| EXPIRE | Supported | Set expiration |
| EXPIREAT | Supported | Set expiration timestamp |
| PEXPIRE | Supported | Set ms expiration |
| PEXPIREAT | Supported | Set ms timestamp |
| PERSIST | Supported | Remove expiration |
| TTL | Supported | Get TTL |
| PTTL | Supported | Get TTL in ms |
| EXPIRETIME | Supported | Get expiration timestamp |
| TOUCH | Supported | Update access time |
| OBJECT | Supported | Object introspection |
| DUMP | Supported | Serialize key |
| RESTORE | Supported | Deserialize key |
HyperLogLog Commands
| Command | Status | Notes |
|---|
| PFADD | Supported | Add elements |
| PFCOUNT | Supported | Count unique |
| PFMERGE | Supported | Merge HLLs |
Bitmap Commands
| Command | Status | Notes |
|---|
| SETBIT | Supported | Set bit |
| GETBIT | Supported | Get bit |
| BITCOUNT | Supported | Count set bits |
| BITPOS | Supported | Find bit position |
| BITOP | Supported | Bitwise operations |
| BITFIELD | Supported | Bit field operations |
Geospatial Commands
| Command | Status | Notes |
|---|
| GEOADD | Supported | Add locations |
| GEOPOS | Supported | Get positions |
| GEODIST | Supported | Calculate distance |
| GEORADIUS | Supported | Radius search |
| GEORADIUSBYMEMBER | Supported | Member radius search |
| GEOSEARCH | Supported | Flexible search |
| GEOSEARCHSTORE | Supported | Search and store |
| GEOHASH | Supported | Get geohash |
Server Commands
| Command | Status | Notes |
|---|
| INFO | Supported | Server info |
| DBSIZE | Supported | Database size |
| TIME | Supported | Server time |
| LASTSAVE | Supported | Last save time |
| SLOWLOG | Supported | Slow query log |
| MEMORY | Partial | Memory stats |
| DEBUG | Partial | Debug commands |
| COMMAND | Supported | Command info |
Known Limitations
Not Supported
| Feature | Reason |
|---|
| Redis Modules | Use HeliosDB extensions |
| Cluster Resharding | Different architecture |
| WAIT Command | Different replication |
| DEBUG SEGFAULT | Security |
Behavioral Differences
- Persistence: Uses HeliosDB storage engine instead of RDB/AOF
- Replication: Uses HeliosDB replication instead of Redis replication
- Eviction: Different memory management policies
- Lua Libraries: Some Redis-specific Lua libraries may differ
Related: README.md | CONFIGURATION.md | EXAMPLES.md
Last Updated: December 2025