Supported Redis commands:
strings: GET, SET, DEL, EXISTS, INCR, INCRBY, DECR, DECRBY, MGET, MSET
expiry: EXPIRE, EXPIREAT, TTL, PTTL, PERSIST
hashes: HGET, HSET, HDEL, HGETALL, HEXISTS, HKEYS, HVALS
lists: LPUSH, RPUSH, LPOP, RPOP, LRANGE, LLEN
sets: SADD, SREM, SMEMBERS, SISMEMBER, SCARD
utility: PING, DBSIZE, FLUSHDB, KEYS
SET options: NX, XX, GET, EX, PX, EXAT, PXAT, KEEPTTL
EXPIRE / EXPIREAT options: NX, XX, GT, LT
LPOP / RPOP options: count
Repository / deployment instructions: https://github.com/zion-off/meowdis
How it works:
1) there’s a compute layer (this can be anything) and a storage layer (a cloudflare durable object instance) 2) you send redis commands to the compute layer using either a) rest b) or upstash sdks (see upstash docs) 3) compute layer translates redis commands to sqlite queries 4) storage layer executes them in a transaction 5)results are returned back to you
post script disclaimer -- this started out as a side project where i was trying to work around fun constriants i made up (serverless, free, etc.). if you try it out and run into problems, bug reports are welcome !!