项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
技术标签
使用教程
—
环境要求
- 已安装 Docker(使用官方镜像快速启动)
- 6379 端口可用(容器映射到宿主机)
- 从源码构建需 GCC/Clang、LLVM 21、CMake 3.25–3.31.6、Rust 1.94、OpenSSL、Python 3 及各类 -dev 库
- 要完整构建含 JSON、时序、Bloom 等模块时需上述版本敏感依赖
安装与启动步骤
-
1用 Docker 快速启动
拉取官方 Redis 镜像并在后台运行,把容器 6379 端口映射到宿主机 6379,无需本地编译。
docker run -d -p 6379:6379 redis:latest -
2安装构建依赖
在干净机器或临时容器中执行,bootstrap 会自动识别系统并安装核心及所有模块的前置依赖。
make bootstrap -
3查看缺失依赖
只列出当前缺失的依赖清单而不安装;想拿到可直接粘贴的安装命令改用 dry-run。
make bootstrap list make bootstrap dry-run -
4编译 Redis
在源码目录执行并行编译;需要 TLS 支持时先导出 BUILD_TLS=yes(需 OpenSSL 开发库)。
export BUILD_TLS=yes make -j "$(nproc)" -
5安装到系统
安装核心二进制、模块 .so 并改写配置里的 loadmodule 路径;也可 sudo make install 装到默认 /usr/local。
sudo make install PREFIX=/usr/local -
6构建 Docker 构建环境
仓库自带 Ubuntu 24.04 的 Dockerfile,把所有前置依赖打包进镜像,避免污染主机工具链。
docker build -f docker/Dockerfile.noble -t redis-build:noble . docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile.noble -t redis-build:noble . -
7容器内编译运行
把工作目录挂载进构建镜像,在容器内并行编译并直接运行,主机无需安装任何依赖。
docker run --rm -it -v "$PWD":/workspace -w /workspace redis-build:noble bash -lc 'make -j"$(nproc)" && make run'
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
BUILD_TLS | 否 | 编译时开启 TLS 支持,需要 OpenSSL 开发库 | yes |
BUILD_INTEL_SVS_OPT | 否 | 编译 Intel SVS-VAMANA 的 LeanVec/LVQ 优化(闭源,授权有约束) | yes |
PREFIX | 否 | make install 的安装前缀目录 | /usr/local |
SKIP_BUILD | 否 | 仅安装不重新编译,已构建过时使用 | 1 |
DESTDIR | 否 | 把文件暂存到指定路径用于打包,不改写配置中的路径 | /tmp/redis-pkg |
PROG_SUFFIX | 否 | 为安装的程序名加后缀,便于多版本共存 | -alt |
如何确认成功
docker ps 能看到运行中的 redis 容器且映射了 6379 端口;宿主机用 redis-cli 连接后执行命令有正常返回。
常见问题
Q:构建时报 CMake 版本不兼容怎么办?
A:模块要求 3.25 ≤ CMake ≤ 3.31.6,不支持 4.x。可执行 pip3 install 'cmake==3.31.6' 固定版本;注意 make bootstrap 不会自动降级已装的 4.x。
Q:make bootstrap 会改动我现有的开发环境吗?
A:会。它会安装系统包并可能覆盖已有的编译器、CMake、LLVM 等版本。建议在一次性容器里执行,或改用仓库自带 Docker 构建镜像。
Q:不想让 bootstrap 动主机,还有别的办法吗?
A:用 docker/Dockerfile.noble 在容器内构建;或参考 8.8 分支 README(github.com/redis/redis/tree/8.8#readme)中按操作系统手动罗列的依赖说明。
Q:只想先知道缺哪些依赖,不想直接安装?
A:执行 make bootstrap list 打印去重后的缺失清单;执行 make bootstrap dry-run 会按模块打印精确的安装命令但不实际安装,可迭代执行直到没有输出。
Q:如何启用 TLS?
A:编译前导出 BUILD_TLS=yes(需 OpenSSL 开发库),具体使用方式参见仓库中的 TLS.md。
注意事项
- CMake 版本区间很关键:必须 3.25–3.31.6,4.x 会导致构建失败
- make bootstrap 会安装系统包并可能覆盖已有工具版本,优先在一次性容器中运行
- 若以 AGPLv3 或 SSPLv1 使用,不能同时启用 Intel 的 LeanVec/LVQ 优化,因其许可证不兼容
- 官方 Docker 镜像提供 Alpine 与 Debian 两种版本,快速上手无需本地编译
核心亮点
- 极高性能:纯内存操作,单线程模型避免锁竞争,读写延迟微秒级
- 数据结构丰富:支持字符串、哈希、列表、集合、有序集合、流、地理空间等
- 高可用与扩展:主从复制、哨兵监控、集群分片,支持水平扩展
不足之处
- 内存成本高:数据驻留内存,大规模数据存储成本昂贵
- 持久化能力相对弱:RDB/AOF 可能丢失部分数据,不适合强持久化需求
适用场景
- 高并发缓存:减轻数据库压力,提升读性能
- 实时排行榜/计数器:利用有序集合和原子操作
- 消息队列:基于列表或流实现轻量级消息通信
替代项目
Memcached、Apache Ignite、Hazelcast
同类项目推荐
freebuff-proxy
开源
聚合多账号,一键接入 OpenAI 兼容 API,轻松管理会话。
[DEPRECATED / UNMAINTAINED] No longer maintained.
microduck
开源
用 Rust 造一只会走路的桌面小鸭,快速上手双足机器人。
A Tiny biped duck robot
ollama
开源
一条命令本地跑起大模型,免费、私密、不卡顿
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other···
soperator
开源
用 Kubernetes 原生方式运行 Slurm,简化 HPC 集群管理。
Run Slurm in Kubernetes
