Skip to content

Ask the HotKV docs

Answers come only from these docs and can be wrong; check the linked pages before you rely on them.

Redis and Valkey compatibility

Last updated

HotKV follows the commands, replies and error messages of Redis 7 and 8 and Valkey 8 and 9: it reports 8.4.0 as its Redis version in HELLO and in INFO (redis_version), as compat-redis-version sets it, so client libraries pick the right features. Every command of Redis 7.x and Valkey 8.0 is available, apart from Sentinel, the replication handshake (SYNC, PSYNC) and the few listed below as not supported. Existing Redis clients, redis-cli, and cluster tools work without changes.

The tables use three marks:

  • Supported: behaves as in Redis and Valkey.
  • Partial: available, with the differences explained.
  • Not supported: not available; the HotKV alternative is given where there is one.
Feature HotKV Notes
RESP2 Supported
RESP3 (HELLO 3) Supported Maps, sets, doubles, booleans, verbatim strings, nulls and push messages. HotKV never sends big numbers or attributes. See Protocol.
Inline commands Partial Arguments are split on spaces only; quotes are not interpreted.
TLS for clients Supported Including client certificates. See TLS.
TLS on the cluster bus and replication Supported Always mutual TLS (tls-cluster, tls-replication).
Unix domain sockets Not supported unixsocket is accepted and ignored. Connect over TCP on the loopback interface.
Pipelining, CLIENT REPLY, CLIENT PAUSE, CLIENT UNBLOCK, CLIENT KILL (all filters), CLIENT SETINFO, RESET Supported
MONITOR Supported
Subscribed connections in RESP3 Supported A RESP3 connection with subscriptions can run any command. A RESP2 one can only run subscription commands, PING, QUIT and RESET.
Client-side caching (CLIENT TRACKING, CACHING, GETREDIR, TRACKINGINFO) Supported The default, REDIRECT, BCAST, OPTIN, OPTOUT and NOLOOP modes on RESP2 and RESP3, and tracking-table-max-keys. See Client-side caching.
maxmemory-clients, CLIENT NO-EVICT Supported Closes the clients that hold the most when all clients hold more than the limit. See Client memory.
CLIENT CAPA (Valkey 8) Not supported
Feature HotKV Notes
Strings, lists, sets, hashes, sorted sets Supported
Streams and consumer groups Supported
Geospatial indexes Supported
Bitmaps and bitfields Supported
HyperLogLog Supported Same representation as Redis, so values move between the two with DUMP / RESTORE.
Hash field expiration (HEXPIRE and related, Redis 7.4) Supported HGETDEL, HGETEX and HSETEX (Redis 8) too.
Bloom filters (BF.*) Supported See probabilistic types.
Count-Min sketch (CMS.*), Top-K (TOPK.*) Supported
Cuckoo filters (CF.*), t-digest (TDIGEST.*) Not supported
JSON, search and query, Redis 8 vector sets Not supported HotKV has its own vector search (VSIM.*).
Time series Not supported as in Redis HotKV has its own TS.* commands, which are not the Redis time series command set. See time series.
Feature HotKV Notes
EVAL, EVALSHA, EVAL_RO, EVALSHA_RO, SCRIPT LOAD / EXISTS / FLUSH / KILL Supported
Functions (FUNCTION, FCALL, FCALL_RO) Supported Libraries are saved with the data and reach replicas.
Script flags (#!lua flags=...) Supported
Lua environment Supported Scripts see redis, server (the Valkey name) and hotkv, and the cjson, cmsgpack, bit and struct libraries. Scripts written for Redis run unchanged.
Lua debugger (SCRIPT DEBUG YES / SYNC) Not supported SCRIPT DEBUG NO is accepted.
SCRIPT SHOW (Valkey 8) Not supported
Transactions (MULTI, EXEC, DISCARD, WATCH) Supported
Feature HotKV Notes
Snapshots (SAVE, BGSAVE, save points) Partial HotKV writes its own snapshot format (dump.hkv by default), which Redis cannot read.
Starting from Redis data Supported With no data of its own yet, HotKV loads a Redis dump.rdb and a Redis AOF (one file, or the Redis 7 multi-part directory) from dir. A key holding a module type stops the start. See Migrating from Redis.
Append-only file (appendonly, appendfsync, BGREWRITEAOF, automatic rewrites) Partial Same settings and guarantees. HotKV’s AOF is one file in its own format.
DUMP / RESTORE Supported Redis payload format, so values can be copied between Redis and HotKV.
Encryption at rest HotKV only See Persistence.
Feature HotKV Notes
Primary and replicas Partial HotKV replicas follow HotKV primaries over HotKV’s own replication link, configured with replication.* (Replication). A HotKV server cannot replicate from Redis or to it.
REPLICAOF / SLAVEOF Partial REPLICAOF NO ONE promotes a replica. Pointing a server at a primary is done in the configuration, not with this command. replicaof in the configuration file stops the start with an explanation.
WAIT, WAITAOF, ROLE Supported
FAILOVER Not supported Replies with an error (FAILOVER ABORT replies OK). Promote a replica with REPLICATION.FAILOVER or REPLICAOF NO ONE, or use CLUSTER FAILOVER in a cluster.
min-replicas-to-write Supported A primary with fewer connected replicas than the setting refuses writes with NOREPLICAS Not enough good replicas to write.
Sentinel Not supported Use cluster mode, which detects failures and promotes replicas on its own, or see High availability.
Feature HotKV Notes
Redis Cluster protocol (16384 slots, MOVED, ASK, hash tags) Supported Cluster clients and redis-cli --cluster work as with Redis.
Automatic and manual failover Supported
CLUSTER subcommands of Redis 7 Supported Including CLUSTER SHARDS, CLUSTER LINKS and CLUSTER MYSHARDID.
CLUSTER SLOT-STATS (Valkey 8) Supported
Host names in redirects (cluster-announce-hostname, cluster-preferred-endpoint-type) Supported
Sharded pub/sub (SSUBSCRIBE, SPUBLISH) Supported
Several databases on a cluster node (Valkey 9’s cluster-databases) Supported One database by default, as in Redis Cluster; cluster-databases (1 to 128, set at startup) gives a node more. SWAPDB is always refused on a cluster node. See Databases in a cluster.
Atomic slot migration: CLUSTER MIGRATESLOTS (Valkey 9) and CLUSTER MIGRATION (Redis 8.4) Supported valkey-cli --cluster reshard --cluster-use-atomic-slot-migration and redis-cli 8.4 or later use them. Slots also move with CLUSTER SETSLOT and MIGRATE, which older redis-cli --cluster reshard drives. See Scaling a cluster.
CLUSTERSCAN (Valkey 9.1), CLUSTER FLUSHSLOT (Valkey 9), SFLUSH (Redis 8) Supported See CLUSTERSCAN, CLUSTER FLUSHSLOT and SFLUSH.
Feature HotKV Notes
ACL (users, categories, key and channel patterns, selectors, ACL LOG, ACL DRYRUN, ACL file) Supported See ACL.
requirepass, AUTH, protected mode Supported
rename-command Not supported Stops the start. Deny the command with an ACL rule instead.
user lines in the configuration file Not supported Stops the start. Put users in the aclfile.
Feature HotKV Notes
INFO, CONFIG GET / SET / REWRITE / RESETSTAT Supported CONFIG SET covers the settings marked in the configuration reference.
COMMAND and its subcommands Supported
SLOWLOG, LATENCY (including HISTOGRAM), MEMORY Supported
Keyspace notifications Supported All classes, including n for new keys.
Eviction policies (all eight) Supported
OBJECT ENCODING Partial Reports the encoding Redis would use for the value under the *-max-listpack-* settings (int, embstr, raw, listpack, listpackex, quicklist, intset, hashtable, skiplist, stream). HotKV stores values its own way.
OBJECT FREQ, IDLETIME, REFCOUNT Supported
DEBUG Partial Off unless enable-debug-command allows it. Offers the subcommands test suites use, such as SLEEP, RELOAD, OBJECT, DIGEST, DIGEST-VALUE, POPULATE, SET-ACTIVE-EXPIRE, LOADAOF, LOG, RESTART and PAUSE-CRON (accepted, with no effect); others are not available.
Modules (MODULE LOAD, loadmodule) Not supported MODULE LIST replies with an empty list. The common module data types are built in (see above).
Active defragmentation, lazy freeing, I/O threads Not applicable These settings are accepted and ignored: HotKV manages memory and threads its own way.
COMMANDLOG (Valkey 8.1) Not supported Use SLOWLOG.

These have no Redis or Valkey equivalent. Some need a HotKV Cloud plan or an On-Premise license; each page says which.

  • AI caching: semantic cache (SCACHE.*), prompt cache (PCACHE.*), tool-call cache (TOOL.CACHE.*), negative cache (NCACHE.*), validated output cache (GUARD.*), rerank score cache (RERANK.*) and embedding deduplication (EMBED.DEDUP.*). See AI features.
  • Agent memory (AMEM.*), LLM usage statistics (LLMSTATS.*) and budgets (LLMBUDGET.*), a prompt registry (PROMPT.*), RAG pipelines (RAG.*) and a feature store (FEATURE.*).
  • Vector search (VSIM.*) and time series (TS.*).
  • Rate limiting: RATELIMIT.* and the GCRA limiter GCRA.LIMIT.
  • Key tags (TAG.*), see tags.
  • Nanosecond expiry (NEXPIRE, NEXPIREAT, NTTL).
  • Hot key tracking (HOTKEYS), see hot keys.
  • Transparent value compression (compression-enabled).
  • A Prometheus endpoint (metrics-port).
  • Encryption at rest (ENCRYPTION.*), a tamper-evident audit log (AUDIT.*), webhook alerts (ALERTS), multi-tenancy (TENANT.*) and replication control (REPLICATION.*).
  • Configuration in TOML (hotkv.toml) as well as hotkv.conf.