What it is
Redis is an in-memory data structure server. Calling it a cache is too narrow: Redis stores strings, hashes, lists, sets, sorted sets, streams, and other structures used for counters, queues, sessions, locks, rate limiting, and fast application responses.
The redis/redis repository has been on GitHub since 2009. Its primary language is C, and the official site is redis.io. Current metadata refers to Redis Open Source; licensing terms and the exact edition should be checked for each use case.
What is inside
Inside are the Redis server, redis-cli, data structure modules, tests, build files, startup documentation, and the source code of the networked server. The key idea is that operations run close to the data, which reduces trips to the primary database for many tasks.
A minimal redis-cli scenario
This example shows the basic model: write a value with a lifetime, read it, and increment a counter. Small operations like these often become building blocks for caches and request-rate controls.
redis-cli PING
redis-cli SET session:42 active EX 3600
redis-cli GET session:42
redis-cli INCR pageviews:home
Where it helps
Redis helps in web applications, background queues, real-time counters, rate limiting, session storage, temporary tokens, Pub/Sub scenarios, and fast indexes. It fits cases where milliseconds matter and data can live in memory or be rebuilt from a source of truth.
It often works next to a primary database rather than replacing it. PostgreSQL or MySQL can remain the system of record, while Redis accelerates reads, coordination, and temporary state.
Strengths and tradeoffs
The strength is speed, a simple command model, and rich data structures. Teams can start with a small cache use case and expand into streams or coordination tasks later.
The tradeoff is operational discipline. In-memory data needs size control, eviction policies, persistence settings, replication, security, and clear behavior on restart. Redis is fast, but a fast state layer can quietly become a critical dependency.