redis/redis

▲ 48 stars today★ 76,700⑂ 24,852

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

About redis/redis

redis/redis is an open-source project on GitHub, mainly written in C. For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server It currently holds 76,700 stars and 24,852 forks with 3,015 open issues, and was last pushed on 2026-10-10 (repository created 2009-03-21).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #69 with 48 new stars today.

GitHub Repository Details

Repository redis/redis · default branch unstable · size 217640 KB · watchers 2,491 · source: GitHub REST API and repository README

README

codecov

This document serves as both a quick start guide to Redis and a detailed resource for building it from source.

and CONTRIBUTING.md

Table of contents

What is Redis?

For developers, who are building real-time data-driven applications, Redis is the preferred, fastest, and most feature-rich cache, data structure server, and document and vector query engine.

Key use cases

Redis excels in various applications, including:

Why choose Redis?

Redis is a popular choice for developers worldwide due to its combination of speed, flexibility, and rich feature set. Here's why people choose Redis for:

In summary, Redis provides a powerful, fast, and flexible toolkit for solving a wide variety of data management challenges. If you want to know more, here is a list of starting points:

What is Redis Open Source?

Redis Community Edition (Redis CE) was renamed Redis Open Source with the v8.0 release.

Redis Ltd. also offers Redis Software, a self-managed software with additional compliance, reliability, and resiliency for enterprise scaling, and Redis Cloud, a fully managed service integrated with Google Cloud, Azure, and AWS for production-ready apps.

Read more about the differences between Redis Open Source and Redis here.

Getting started

If you want to get up and running with Redis quickly without needing to build from source, use one of the following methods:

  docker run -d -p 6379:6379 redis:latest
  
If you prefer to build Redis from source - see instructions below.

Redis starter projects

To get started as quickly as possible in your language of choice, use one of the following starter projects:

Using Redis with client libraries

To connect your application to Redis, you will need a client library. Redis has documented client libraries in most popular languages, with community-supported client libraries in additional languages.

Using Redis with redis-cli

redis-cli is Redis' command line interface. It is available as part of all the binary distributions and when you build Redis from source.

You can start a redis-server instance, and then, in another terminal try the following:

cd src
./redis-cli
redis> ping
PONG
redis> set foo bar
OK
redis> get foo
"bar"
redis> incr mycounter
(integer) 1
redis> incr mycounter
(integer) 2
redis>

Using Redis with Redis Insight

For a more visual and user-friendly experience, use Redis Insight - a tool that lets you explore data, design, develop, and optimize your applications while also serving as a platform for Redis education and onboarding. Redis Insight integrates Redis Copilot, a natural language AI assistant that improves the experience when working with data and commands.

Redis data types, processing engines, and capabilities

Redis provides a variety of data types, processing engines, and capabilities to support a wide range of use cases:

tracking, and predictive analytics

Cloud hosted Redis

Fully-managed Redis with real-time performance at scale.

Redis Cloud

Community

Redis Community Resources

Build Redis from source

This section refers to building Redis from source. If you want to get up and running with Redis quickly without needing to build from source see the Getting started section.

These instructions apply to Redis 8.10 and above. For versions lower than 8.10, see the 8.8 build instructions.

Configuration files: the build steps below tell you to run
./src/redis-server redis.conf. Release tarballs bake the bundled modules'
loadmodule lines and per-module settings directly into redis.conf during
packaging, so an extracted release tarball is ready to run as-is. When
building from a git checkout instead, that module config lives in the
auto-generated redis-full.conf produced by make modules-update (and
regenerated by make sync-redis-conf) — run `./src/redis-server
redis-full.conf` there. Edit Redis-core settings in
redis.conf. See modules/MODULES.md
for the full config flow.

Install dependencies and build

Building Redis with all data structures (JSON, time series, Bloom / cuckoo / count-min / top-k, t-digest, and the Query Engine) needs a build toolchain plus a few version-sensitive dependencies — GCC/Clang, LLVM 21, CMake 3.25–3.31.6, Rust 1.94, OpenSSL, Python 3, and assorted -dev libraries. Instead of a per-OS package list, the repo installs them for you with make bootstrap, which detects your OS and installs each bundled module's prerequisites.

CMake version range matters. The modules require 3.25 ≤ CMake ≤ 3.31.6 — CMake 4.x is not supported and the build will fail with it. On distros that ship CMake 4.x by default (e.g. Ubuntu 26.04), pin a supported version, e.g. pip3 install 'cmake==3.31.6'. Note make bootstrap only installs CMake when it's missing or too old; it won't downgrade a pre-installed 4.x, so remove/pin that yourself.

1. Get the source

Either works — the release tarball already bundles the module sources; a git checkout needs one extra step to fetch them:

# A) Release tarball (recommended for building/running a release).

Replace with the release tag — extracts into redis-/:

wget https://github.com/redis/redis/releases/download//redis-full-.tar.gz tar xvf redis-full-.tar.gz && cd redis-

B) git checkout — clone the bundled modules once:

git clone https://github.com/redis/redis.git && cd redis make modules-update

Check the release page's Assets for the bundle filename. Older releases, including 8.10.0 and 8.10.2, provide redis-full.tar.gz instead of the versioned filename. For those releases, replace the wget command above with the following; the extraction command stays the same:

wget -O redis-full-.tar.gz https://github.com/redis/redis/releases/download//redis-full.tar.gz

2. Install the build dependencies

Pick whichever option fits your environment:

1. Build inside the Docker build environment — recommended. The repo ships docker/Dockerfile.noble (Ubuntu 24.04) with every prerequisite baked in, so you build inside the container and never touch your host toolchain:

   docker build -f docker/Dockerfile.noble -t redis-build:noble .

# Multi-arch (requires docker buildx configured): docker buildx build --platform linux/amd64,linux/arm64 \ -f docker/Dockerfile.noble -t redis-build:noble .

# Build with the working tree mounted: docker run --rm -it -v "$PWD":/workspace -w /workspace redis-build:noble \ bash -lc 'make -j"$(nproc)" && make run'

2. Install everything on a fresh machine or container. On a clean environment (for example a throwaway ubuntu:24.04 container), let bootstrap install every prerequisite for Redis core and all cloned modules:

   make bootstrap
   

> ⚠️ make bootstrap installs system packages and may override existing versions of shared tools (compiler, CMake, LLVM, …). Prefer option 1, or run it in a disposable container, if that matters on your machine.

3. See only what's missing. To inspect which prerequisites are absent before installing anything, print one deduped list across Redis core and all modules:

   make bootstrap list
   

Then install just the reported packages yourself. (Version-gated deps are shown as name (>= X); optional test/coverage deps are listed separately and don't fail the check.)

4. Get the exact install commands to copy-paste. To run exactly what make bootstrap would, but only for the missing dependencies, use dry-run — it prints the precise install command for each missing dependency and installs nothing:

   make bootstrap dry-run
   

The commands are printed per module, so a dependency shared by several modules appears once for each. Work through them iteratively:

1. Copy-paste the commands for a module to install its dependencies. 2. Re-run make bootstrap dry-run — the deps you just installed no longer show, so you now see only what's still missing for the remaining modules. 3. Repeat until make bootstrap dry-run prints no install commands.

Manual, per-OS install (no Docker, and you'd rather not let make bootstrap touch your host): follow the per-OS dependency instructions in the 8.8 README, which still lists them explicitly — .

3. Build and run

export BUILD_TLS=yes            # optional — TLS support (needs OpenSSL dev libs)
make -j "$(nproc)"

Release tarball (module config is baked into redis.conf):

./src/redis-server redis.conf

From a git checkout, use the auto-generated module config instead:

./src/redis-server redis-full.conf

make (same as make build / make all) builds whatever is cloned under modules/*/src alongside Redis core. To build just the core data structures — even with modules cloned — use make build redis.

redis-server won't start: "Error loading the extension" / can't open a
.so. The config still lists modules that weren't built successfully — a
release tarball's redis.conf carries loadmodule lines for every bundled
module, and a module whose build failed leaves no .so behind. Either build
them (make bootstrap && make, or make build for the one that failed), or
comment out everything that isn't Redis core in the config you pass: the
loadmodule lines and that module's own settings below them (e.g.
search-, ts-, bf-, json-). Core-only alternative: ./src/redis-server
with no config file, or make build redis && ./src/redis-server redis.conf
from a git checkout, where redis.conf has no module block at all.

4. Install

make install PREFIX=/usr/local          # core binaries + every built module
sudo make install                       # same, into the default /usr/local
make uninstall PREFIX=/usr/local        # removes exactly what install placed

install is an alias for deploy: it builds first (nothing already up to date is recompiled), copies redis-server, redis-cli and redis-benchmark plus the three redis-server symlinks to $PREFIX/bin, each module's .so to $PREFIX/lib/redis/modules, and rewrites the loadmodule paths in the generated config to point there. DESTDIR= stages the files for packaging without changing the paths written to the config, and PROG_SUFFIX= installs suffixed program names (redis-server-alt, …).

To install without building at all, use SKIP_BUILD=1:
sudo make install SKIP_BUILD=1

Building Redis - flags and general notes

Redis can be compiled and used on Linux, OSX, OpenBSD, NetBSD, FreeBSD. We support big endian and little endian architectures, and both 32 bit and 64-bit systems.

It may compile on Solaris derived systems (for instance SmartOS) but our support for this platform is _best effort_ and Redis is not guaranteed to work as well as on Linux, OSX, and \*BSD

GitHub Stars & Activity

76,700Stars
24,852Forks
3,015Open issues
CLanguage

GitHub Popularity

GitHub stars76,700
Forks24,852
Open issues3,015
Primary languageC
LicenseNOASSERTION
Stars gained today48
Created2009-03-21
Last pushed2026-10-10

Trending History

Daily boardrank #69 · ▲ 48 stars

Related GitHub Projects

1

ventoy / Ventoy

C★ 79,880⑂ 4,976▲ 55 stars
→
2

obsproject / obs-studio

C★ 77,252⑂ 10,568▲ 53 stars
→
3

EpicGames / raddebugger

C★ 8,323⑂ 403▲ 81 stars
→
4

InterceptSuite / ProxyBridge

C★ 6,675⑂ 408▲ 35 stars
→
5

mattpocock / skills

Shell★ 284,242⑂ 23,793▲ 1,737 stars
→
6

multica-ai / andrej-karpathy-skills

★ 218,142⑂ 21,976▲ 279 stars
→
7

microsoft / vscode

TypeScript★ 193,524⑂ 44,983▲ 43 stars
→
8

jackfrued / Python-100-Days

Jupyter Notebook★ 187,000⑂ 55,751▲ 41 stars
→

More Trending Repositories