A practical in-memory databasewith a familiar Redis interface
Keep application state, collections, queues, and live events in RAM. Connect with an existing Redis client, persist snapshots to disk, and add text or vector indexes only where you need ranked retrieval.
Features
The building blocks for fast application state
Use familiar data structures, transactions, queues, pub/sub, expiry, and snapshots through one RESP endpoint.
How it works
Start a server and write data immediately
Klyro listens on port 7171 and accepts RESP commands from redis-cli or an existing Redis client. No schema or migration is required.
Write application state
Keys need no schema. Store a temporary value as a string, a profile as a hash, or unique members in a set.
Coordinate workers and events
Use blocking list operations for work queues, pub/sub for live events, and MULTI/EXEC when a group of commands must run together.
Add ranked retrieval where it fits
A memory index is optional. Use it for records that need BM25 keyword search, vector similarity, filters, or a weighted hybrid ranking.
Why Klyro
One server for state, coordination, and search
Keep frequently accessed data and the operations around it behind one port and one client protocol.
Comparison
Core data structures, with search when you need it
Use the standard keyspace for application state and coordination. Add a memory index when records need keyword, vector, recency, or importance ranking.
| Capability | Core database | Memory extension |
|---|---|---|
| Data model | Strings and collections | Text, vectors, metadata |
| Primary commands | GET, HSET, LPUSH, ZADD | MEM.ADD, MEM.QUERY |
| Expiry | Per key | Per index and per record |
| Coordination | Transactions, queues, pub/sub | Ranked result retrieval |
| Search | Key scans and collection ranges | BM25, vector, hybrid |
| Client access | Any RESP client | Typed TypeScript, Python, Go, or raw RESP |
| Persistence | Shared snapshot | Shared snapshot |
Packages & imports
Use a typed client in TypeScript, Python, or Go
Standard database commands keep their familiar client API. Typed Klyro helpers encode vectors, build MEM.* commands, and decode their results.
FAQ
Questions people ask first
If something here is still unclear, the documentation goes deeper on every point.
Start with the data structures your application already understands
Run one process, connect on port 7171, and use a familiar Redis client. Add ranked text and vector retrieval when the workload calls for it.
