函式庫 / SDK
redis/redis avatar
redis/redis

Redis:從缓存到文档、向量和事件數據結構

記憶體內資料結構伺服器,可用作快取、訊息代理以及文件與向量查詢引擎,支撐即時的資料驅動應用。

76,372 個 Star24,807 個 ForkC授權條款依專案而異

秒懂

它是什麼?
面向實时數據驱動應用的 C 语言數據結構服務器與查询引擎,选型關键是數據類型、版本許可、構建依赖和模块边界。
適合誰用?
适合需要低延迟缓存、会话、消息、搜索或向量能力的開發者;不适合只依據“低于毫秒”這類 README 自报描述就承诺业務 SLA。先运行官方 Docker 镜像完成 PING、SET、GET、INCR,再按實际數據類型測量内存和延迟。
可以商用嗎?
請先確認。這個儲存庫使用的授權不在我們自動分類的範圍內,商用前請閱讀儲存庫中的 LICENSE 檔案。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 C(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

README 对 Redis 的定义 · redis-redis-deep-analysis

README 開篇用 Redis 自己的话给出了定义:对于構建實时數據驱動應用的開發者而言,Redis 是首选、最快且功能最丰富的缓存、數據結構服務器,以及文档和向量查询引擎。同一节还记錄了一次改名:Redis Community Edition(Redis CE)在 v8.0 發布时更名為 Redis Open Source。README 还声称,由于數據主要保存在内存中,讀寫的延迟非常低,通常低于毫秒級。倉庫元數據补充了基本事實:項目使用 C 语言编寫,默认分支名為 unstable,GitHub 上显示 75,882 颗星、24,749 個 fork 和 2,891 個未關闭 issue。

README 列出的八個主要用例 · redis-redis-deep-analysis

README 列出了八個主要用例。缓存支持多种淘汰策略、键過期和哈希字段過期。分布式会话存儲可以把会话數據建模為字符串、JSON 或哈希。作為數據結構服務器,Redis 提供字符串、列表、集合、哈希、有序集合和 JSON 等底层結構,以及计數器、队列、排行榜、限流器等高层语义,并支持事務和脚本。清单其余部分包括:面向键值、文档和时间序列數據的 NoSQL 數據存儲;对哈希和 JSON 文档建立索引的搜索與查询引擎;基于列表、有序集合、集合、流和發布订阅的事件存儲與消息代理;面向生成式 AI 應用的向量存儲;以及用于個性化、推荐、欺诈检測和风险评估的實时分析。

數據類型與引擎 · redis-redis-deep-analysis

數據類型一节是 README 中最長的部分,而覆盖面正是重点。字符串是用于缓存、计數和位运算的字节序列;JSON 支持用 JSONPath 索引的嵌套文档;數組是稀疏的、可按索引寻址的字符串集合;哈希是字段值映射,支持字段級過期。Redis Search 被描述為把 Redis 變成文档數據庫、向量數據庫、二級索引和搜索引擎。列表、集合和有序集合覆盖了栈、队列、去重跟踪和排行榜。向量集合數據類型標记為 beta。地理空间索引、位圖、位域、HyperLogLog,以及一系列概率結構(布隆過滤器、布谷鸟過滤器、t-digest、Top-k、count-min sketch)與时间序列、發布订阅、流、事務和用于服務端编程的 Lua 脚本并列列出。

不構建源码即可运行 Redis · redis-redis-deep-analysis

对于不想编譯源码的用户,README 指向 Redis Cloud、官方 Docker 镜像,以及通過 Snap、Homebrew、RPM 和 Debian 包提供的二進制發行版。Docker 示例命令是 docker run -d -p 6379:6379 redis:latest。README 展示的 redis-cli 会话中,ping 返回 PONG,set foo bar 返回 OK,get foo 返回 bar,incr 把计數器從 1 递增到 2。Redis Insight 被描述為一個可视化工具,同时充当学习和入门平台,并集成了名為 Redis Copilot 的自然语言助手。客户端庫列出了 Python、C#/.NET、JavaScript、Java、Go、PHP 和 C,其中几种语言还提供了入门項目。

源码構建:依赖與 bootstrap · redis-redis-deep-analysis

構建部分适用于 Redis 8.10 及以上版本;更早版本的说明指向 8.8 分支。依赖对版本敏感:GCC 或 Clang、LLVM 21、CMake 3.25 到 3.31.6、Rust 1.94、OpenSSL、Python 3,以及各類開發庫。CMake 4.x 被明确声明不支持。make bootstrap 目標会检測操作系統并安装每個内置模块的依赖;make bootstrap list 只显示缺失項而不安装,make bootstrap dry-run 则按模块打印精确的安装命令。基于 Ubuntu 24.04 的 docker/Dockerfile.noble 構建環境是推荐做法,這样不会改動宿主机的工具链。發布 tarball 会把模块配置烘焙進 redis.conf,而 git 检出需要先执行 make modules-update,再使用自動生成的 redis-full.conf。

構建参數、平台、分配器與測試 · redis-redis-deep-analysis

README 把 Linux、OSX、OpenBSD、NetBSD 和 FreeBSD 列為受支持平台,Solaris 衍生系統则属于尽力支持。構建参數包括用于 TLS 的 BUILD_TLS=yes、用于 systemd 集成的 USE_SYSTEMD=yes、用于给程序名加後缀的 PROG_SUFFIX、用于 32 位二進制的 make 32bit,以及用于 8.10 起复制流 zstd 压缩的 BUILD_COMPRESSION=yes。分配器通過 MALLOC 環境變量选择,Linux 上默认是 jemalloc,其他地方默认是 libc malloc。单调时钟默认使用 POSIX clock_gettime,ARM aarch64 架構默认启用硬件时钟。make distclean 会清除缓存的構建选項和依赖状態,make test 运行測試套件。

許可、贡献與商標 · redis-redis-deep-analysis

README 描述了一套按版本区分的許可方案。7.2.x 及更早版本采用 BSDv3;7.4.x 到 7.8.x 在 RSALv2 或 SSPLv1 中选择;8.0.x 及之後在 RSALv2、SSPLv1、AGPLv3 三者中任选其一。代码贡献按照 Redis Software Grant and Contributor License Agreement 提交,README 指向 CONTRIBUTING.md 和 SECURITY.md。它还说明,使用 BUILD_INTEL_SVS_OPT=yes 構建的 Intel SVS-VAMANA 優化是闭源的,不能與 AGPLv3 或 SSPLv1 發行版結合使用。随倉庫提供的許可摘錄指出,在常见路径未找到 LICENSE 文件,因此完整許可證文本不在可用资料中。另一节说明 Redis 是其名称和標志的註册商標所有人,并在 redis.io 發布了商標政策。

第1項核驗針對 Redis:從缓存到文档、向量和事件數據結構 的文件邊界:把 README 中的安裝入口、命令、設定鍵與輸出格式對應到實際執行結果。針對 redis-redis-deep-analysis,應保留原始輸入、執行環境、終端輸出、錯誤路徑和產生檔案;若流程依賴網路、模型、資料庫或作業系統權限,還要記下依賴失效時的具體反應。這些紀錄能分辨是輸入格式不符、設定未載入、外部服務失敗,還是專案本身的處理限制。

第2項核驗針對 Redis:從缓存到文档、向量和事件數據結構 的文件邊界:把 README 中的安裝入口、命令、設定鍵與輸出格式對應到實際執行結果。針對 redis-redis-deep-analysis,應保留原始輸入、執行環境、終端輸出、錯誤路徑和產生檔案;若流程依賴網路、模型、資料庫或作業系統權限,還要記下依賴失效時的具體反應。這些紀錄能分辨是輸入格式不符、設定未載入、外部服務失敗,還是專案本身的處理限制。

第3項核驗針對 Redis:從缓存到文档、向量和事件數據結構 的文件邊界:把 README 中的安裝入口、命令、設定鍵與輸出格式對應到實際執行結果。針對 redis-redis-deep-analysis,應保留原始輸入、執行環境、終端輸出、錯誤路徑和產生檔案;若流程依賴網路、模型、資料庫或作業系統權限,還要記下依賴失效時的具體反應。這些紀錄能分辨是輸入格式不符、設定未載入、外部服務失敗,還是專案本身的處理限制。

第4項核驗針對 Redis:從缓存到文档、向量和事件數據結構 的文件邊界:把 README 中的安裝入口、命令、設定鍵與輸出格式對應到實際執行結果。針對 redis-redis-deep-analysis,應保留原始輸入、執行環境、終端輸出、錯誤路徑和產生檔案;若流程依賴網路、模型、資料庫或作業系統權限,還要記下依賴失效時的具體反應。這些紀錄能分辨是輸入格式不符、設定未載入、外部服務失敗,還是專案本身的處理限制。

編輯結論

适合需要低延迟缓存、会话、消息、搜索或向量能力的開發者;不适合只依據“低于毫秒”這類 README 自报描述就承诺业務 SLA。先运行官方 Docker 镜像完成 PING、SET、GET、INCR,再按實际數據類型測量内存和延迟。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記