redis/redis
Redis
Redis is an in-memory data structure server. It speaks a simple text-based protocol (RESP) on TCP and exposes high-level data types — strings, lists, hashes, sets, sorted sets, streams, hyperloglogs, bitmaps, geospatial indexes, vector sets — along with Pub/Sub, transactions, Lua scripting, replication, sharding, and a pluggable module API.
This wiki covers the source layout under src/, the bundled dependencies under deps/, the Tcl-based test harness in tests/, and the toolchain that builds redis-server, redis-sentinel, redis-cli, redis-benchmark, redis-check-rdb, and redis-check-aof.
What is in the repository
| Directory | Purpose |
|---|---|
src/ |
The C source for the Redis server, CLI, and the RDB/AOF check tools. |
src/commands/ |
One JSON file per Redis command describing its arguments, flags, ACL category, and reply schema. |
src/modules/ |
Sample modules (helloworld.c, hellotype.c, helloblock.c, …) demonstrating the Module API. |
deps/ |
Bundled, in-tree third-party libraries: jemalloc, Lua 5.1, hiredis, hdr_histogram, linenoise, fpconv, xxhash. |
tests/ |
Tcl-based integration test harness: unit/, integration/, cluster/, sentinel/, support/. |
modules/ |
External-style modules built into the server when BUILD_WITH_MODULES=yes is passed (vector-sets/ is included; the rest are stubs that download from upstream). |
utils/ |
Helper scripts: cluster bootstrappers, certificate generation, command-table code generation, init scripts, systemd units. |
redis.conf, sentinel.conf |
The example configuration files shipped with each release. |
How to read this wiki
- Start with Architecture for the high-level picture: event loop, client lifecycle, persistence, replication, cluster, modules.
- Use Getting started to build, run, and exercise Redis from source.
- Drill into a deployable in Applications: one page per binary.
- Drill into a subsystem in Systems: event loop, networking, persistence, replication, cluster, scripting, modules, ACL, memory management, IO threads, Pub/Sub, tracking.
- Drill into a data structure in Primitives: SDS, dict, listpack/quicklist, rax, intset, kvstore, robj, ebuckets, stream radix.
- Drill into a feature in Features: the user-visible data types, key expiration, transactions, keyspace notifications.
- Look up a term in the Glossary.
Project facts
- Source language: C99 / GNU11 (auto-detected; falls back to C99 if the compiler does not have
<stdatomic.h>). - License: tri-license RSALv2 / SSPLv1 / AGPLv3 (see
LICENSE.txt). Earlier history is BSD-3 (seeREDISCONTRIBUTIONS.txt). - First commit: March 2009. Original author: Salvatore Sanfilippo ("antirez").
- Build system: GNU Make. The top-level
Makefiledelegates tosrc/Makefile, which in turn builds everything indeps/first. - Test harness: Tcl (
tcl8.6+); driven fromtests/test_helper.tclvia theruntest,runtest-cluster,runtest-sentinel, andruntest-moduleapishell wrappers. - Cross-platform: Linux, macOS, FreeBSD, NetBSD, OpenBSD, DragonFly, Haiku. Windows is not supported by upstream.
Quick links
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.