Vibeleaderboard
Index / tool
Visit redis.io
Category
Developer Tools
Rank
Pricing
Freemium
Type
TOOL
Builder
redis
Latest release
8.10.1
Date

About

In-memory data store. In-memory key-value store used for caching, queues, sessions, and real-time data. Now under the RSALv2/SSPL license.

What it does

Redis is an in-memory data structure server written in C. Clients speak a compact text protocol over TCP and manipulate typed values: strings, hashes, lists, sets, sorted sets, streams, and vector embeddings. The core is deliberately mostly single threaded, with separate I/O threads for network work, and it persists by forking a child process. One build command produces the server plus a command line client, linking vendored copies of a Lua interpreter, a line editor, a C client library and a latency histogram library. Transport encryption, replication compression and four bundled data modules are optional and selected at build time.

Why it's ranked here

Few pieces of infrastructure are this well understood, and the tree shows why: a written design philosophy, a small single threaded core, vendored dependencies documented one by one with upgrade procedures. The judgement is not unqualified. Licensing moved to a three way choice of source available, server side public, and AGPL terms, so anyone reselling it as a service has reading to do. The transport security documentation also states plainly that peer certificates are only checked for chaining to the trusted authority by default, and that the cluster bus carries no per message authentication. Strong engineering, real strings attached.

What's good

The build is honest about its own variability: allocator choice per platform, four sanitizer modes, link time optimization toggles, and explicit branches for Linux, macOS, the BSDs, Solaris, AIX and Haiku. Dependency notes explain not only what is vendored but how to upgrade each piece and which local patches exist, including a Lua change that blocks direct bytecode execution. The security policy publishes a supported version table and a disclosure route. Module pins live in one manifest, one reference per module, resolved as tag, then branch, then commit hash, with a loud error when nothing matches.

Tradeoffs

Weight is the cost. A source build pulls an allocator tree, a Lua interpreter, and four external modules cloned from separate repositories, one of which needs a Rust toolchain. The default link time optimized build wants Clang and a matching linker at the version Rust was built against, which the bootstrap step does not install, so many people will fall back to the slower non optimized path. On macOS the stock make is too old and GNU make 4 or newer is required. Transport security is opt in at compile time, and the peer name check is opt in again at runtime.

How to use it well

Reach for it when you need sub millisecond reads on data that fits in memory: caches, session stores, queues, rate limiters, leaderboards, vector similarity lookups. Teams running a cluster under a shared or public certificate authority should switch on the expected peer name check, because the default trust model assumes a dedicated authority per cluster. It is not a durable system of record, not a relational database, and not a disk backed analytics store. Prebuilt images and packages exist, so compiling from source is for people who need a specific module set or specific compile flags.

Technical notes+

The top-level Makefile is a thin dispatcher: it captures positional goals into variables and shells out to helper shell scripts for build, bootstrap, run, test, deploy and tarball, leaving src/Makefile to do the compiling. src/Makefile selects jemalloc on Linux and libc elsewhere, probes for C11 atomics and both drops vector sets and falls back to C99 when they are absent, wires SANITIZER=address|undefined|thread|memory, gates TLS behind BUILD_TLS=yes or BUILD_TLS=module, and gates replication compression behind BUILD_COMPRESSION=yes against libzstd. modules/modules.yaml pins redisbloom, redisearch, redisjson and redistimeseries by upstream repo and ref; modules/MODULES.md documents ref resolution, artifact paths and generated config, and modules/README.md gives the daily clone, bootstrap, build, run, test loop. deps/README.md lists the vendored trees and their upgrade steps. TLS.md documents the certificate trust model and the opt-in peer name verification, LICENSE.txt the tri-license, SECURITY.md the supported version table, MANIFESTO the single threaded design stance, and INSTALL only points back at README.md.

Observed

License
Tri-licensed per LICENSE.txt: choose Redis Source Available, Server Side Public License, or AGPL
Language and build
C, driven by GNU make; macOS needs GNU make 4 or newer rather than the stock binary
Install surface
Source build plus official Docker images, Snap, Homebrew, RPM and Debian packages
Interfaces
TCP wire protocol, bundled command line client, documented client libraries across major languages, loadable module API
Platform branches
src/Makefile carries explicit cases for Linux, Darwin, FreeBSD, NetBSD, OpenBSD, DragonFly, SunOS, AIX and Haiku
Allocator
jemalloc by default on Linux, system libc elsewhere, tcmalloc selectable by flag
Transport security
TLS is opt in at build time, built in or as a loadable module; sentinel mode does not support the module form
Build diagnostics
Address, undefined behaviour, thread and memory sanitizer builds selectable from the build flags
Bundled modules
Probabilistic structures, search, JSON and time series pinned in modules/modules.yaml; vector sets live in tree
Test surface
TCL based suites for core, cluster, sentinel and module API, with a separate TLS mode

Read from README.md, Makefile, src/Makefile, INSTALL, MANIFESTO, LICENSE.txt, TLS.md, SECURITY.md, deps/README.md, modules/README.md, modules/modules.yaml, modules/MODULES.md.

Tags

RedisDatabase

Media

Redis

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.