Redis is an in-memory key-value database for developers and platform teams that need caching, sessions and messaging, hosted or self-managed.
Redis holds its data in memory, which is why caches, session stores, message queues and leaderboards are built on it. It also serves real-time decisioning and vector search workloads. Redis Ltd. makes and sells it as an independent company, with Francisco Partners as a financial investor. The same product ships as Redis Cloud, as Redis Software for on-premises use and as an Open Source edition. Data lives in native types: strings, hashes, lists, sets, sorted sets, streams and JSON documents. Keys expire on a TTL, and eviction policies such as allkeys-lru and allkeys-lfu apply when memory fills. Persistence comes from RDB snapshots and the append-only file. Redis Search indexes JSON and hash fields so queries can go beyond key lookups. Pub/sub channels handle fan-out messaging, and streams with consumer groups spread entries across workers. Lua scripts and Redis Functions run atomically on the server. Redis Sentinel promotes a replica when a primary fails, and Redis Cluster shards the keyspace across nodes. Active-Active databases accept writes in several regions. Redis Flex extends a database across RAM and SSD. With client-side caching, the server tracks the keys a client has read and sends an invalidation message when a key changes. The redis-py, Jedis, node-redis and go-redis client libraries support it. Backend developers use Redis as a cache in front of a relational database or as a session store for web apps. Platform teams run the Open Source edition or Redis Software themselves, while teams that prefer a managed service choose Redis Cloud, which has Free, Essentials and Pro tiers. Global apps that need writes in several regions use Active-Active on Pro or Redis Software. Redis Software is quoted through sales. Redis also acts as a message layer between services, a store for leaderboards built on sorted sets, and a low-latency lookup layer fed by Redis Data Integration from upstream databases and warehouses. Redis Insight is a graphical client that browses keys and manages streams and consumer groups.
Features
- Included: Rich data structures beyond strings
- Included: Per-key expiration and eviction policies
- Included: Snapshot persistence to disk
- Included: Append-only log persistence
- Included: Replica failover with automatic promotion
- Included: Horizontal clustering of the keyspace
- Included: Active-active geo replication
- Included: Pub/sub messaging channels
- Included: Atomic server-side scripting
- Included: SSD tiering beyond available RAM
- Included: Secondary indexes on stored values
- Included: Native JSON value type
- Not included: Multi-threaded request handling
- Included: Per-user command and key ACLs
- Included: Client-side caching invalidation
- Included: Streams with consumer groups
- Included: Keyspace memory reporting
Additional Features
- Hashes, lists, sets and sorted sets
- JSON documents with JSONPath access
- Redis Search indexing of JSON and hash fields
- TTL expiry with allkeys-lru and allkeys-lfu eviction
- RDB point-in-time snapshots
- AOF write logging with per-second fsync
- Redis Sentinel automatic failover
- Redis Cluster keyspace sharding
Best for
- Backend developers adding a cache in front of a relational database
- Web teams storing user sessions with automatic expiry
- Platform teams self-hosting Redis with Sentinel or Cluster
- Developers prototyping on a managed database of up to 30 MB
- Global apps that need writes accepted in several regions on Pro or Redis Software
- Product teams building leaderboards on sorted sets
- Enterprises that buy on-premises software through a sales team
- Data teams syncing source databases into Redis for fast reads
Use cases
- Caching database query results in memory
- Storing web sessions with a TTL
- Ranking players or items on a leaderboard
- Fan-out messaging between services with pub/sub
- Spreading queued work across workers with stream consumer groups
- Real-time decisioning on fresh data
- Vector search alongside key-value data
- Indexing and querying JSON documents by field
- Running one database across several regions with Active-Active
- Extending a database beyond RAM with Redis Flex
- Invalidating client-side caches when a key changes
- Running atomic Lua scripts across several keys
- Recovering a dataset after a restart from RDB or AOF files
Screenshots & Videos
Explore Redis in action