Skip to main content
Cache-Pot is a drop-in Redis replacement for most use cases. It speaks RESP2 over the wire, so any Redis client library — ioredis, redis-py, go-redis, Lettuce, Jedis — connects and works without a single line of code changing. For the vast majority of apps that use Redis as a cache or key/value store, pointing the connection string at Cache-Pot is all you need to do.

What’s compatible

Cache-Pot implements all the command groups you rely on day-to-day:

Strings

GET, SET, MGET, MSET, INCR, APPEND, GETRANGE, and more

Hashes

HSET, HGET, HGETALL, HDEL, HMGET, HKEYS, HVALS, HLEN

Lists

LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN, LINDEX

Sets

SADD, SREM, SMEMBERS, SISMEMBER, SCARD

Sorted Sets

ZADD, ZREM, ZSCORE, ZRANGE, ZRANGEBYSCORE, ZCARD

Pub/Sub

SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH

Transactions

MULTI, EXEC, DISCARD, WATCH, UNWATCH

Key Expiry

EXPIRE, PEXPIRE, EXPIREAT, TTL, PTTL, PERSIST

Iteration

SCAN, HSCAN, SSCAN, ZSCAN with MATCH and COUNT

Auth & Select

AUTH, SELECT 0, PING, QUIT, ECHO

Server

INFO, DBSIZE, FLUSHDB, SAVE, BGSAVE, BGREWRITEAOF

Observability

MONITOR, SLOWLOG, CLIENT LIST, CONFIG GET/SET

What’s different

Cache-Pot is honest about where it diverges from Redis. These differences only matter if your current setup uses the specific features listed below.
If you use Redis purely as a cache or key/value store, none of these differences will affect you.
If your application calls SELECT with a database index greater than 0, it will receive an error. Audit your codebase for SELECT usage before switching.

Migration steps

1

Install Cache-Pot

Install via Go, Docker, or build from source:
Cache-Pot starts listening on :6379 by default — the same port Redis uses.
2

Export your data from Redis (if you need it)

Cache-Pot uses its own snapshot format, not Redis’s RDB format. If you have data in Redis that needs to carry over, export it using redis-cli and replay the writes:
For a fresh start or when migrating only the connection (not the data), skip this step entirely.
3

Update your connection string

Point your application at Cache-Pot. If Cache-Pot is running locally on the default port, your connection string likely does not need to change at all:
4

Configure authentication (if you use AUTH)

If your Redis instance requires a password, start Cache-Pot with the same password using --auth or the CACHEPOT_AUTH environment variable:
5

Verify the connection

Confirm everything is working by connecting and running PING:

Client library examples

No code changes are required — only the server address changes (and only if Cache-Pot is on a different host).
Once you have migrated, explore Cache-Pot’s AI extensions. Vector search (VSET / VSEARCH) and semantic caching (SCACHE.SET / SCACHE.GET) are available with no additional setup — except an embedding endpoint for the semantic cache. They run through the same RESP2 connection your existing client already holds.