Docker 安装 Redis Stack:快速搭建本地向量数据库
在 RAG 应用中,我们通常需要一个向量数据库保存文档向量,并根据用户问题进行相似度检索。
本篇使用 Docker 快速安装 Redis Stack,为后面的 RAG 文档向量存储做准备。
一、什么是 Redis Stack?
普通 Redis 主要用于:
缓存
Key-Value 存储
分布式锁
排行榜
而 Redis Stack 在 Redis 基础上增加了搜索、JSON、向量检索等能力。
可以简单理解成:
Redis Stack
=
Redis
+
全文搜索
+
向量检索
+
JSON
+
RedisInsight
其中我们最关心的是 RediSearch。
它支持:
全文搜索
字段索引
KNN 查询
向量相似度搜索
所以 Redis Stack 可以作为 RAG 项目的向量数据库。
二、下载 Redis Stack
首先确保电脑已经安装 Docker。
执行:
docker pull redis/redis-stack:7.2.0-v18
这里使用的是:
redis/redis-stack
它同时包含:
Redis Stack Server
+
RedisInsight
比较适合本地开发。
如果是生产环境,也可以考虑:
redis/redis-stack-server
它只包含 Redis Stack Server,占用资源更少。
三、准备数据目录
例如 Windows 创建:
E:\docker\redis-stack
然后创建:
redis-stack
│
└── data
data 用于保存 Redis 数据。
这样即使 Docker 容器删除了,数据也不会跟着消失。
四、启动 Redis Stack
Windows CMD 可以直接执行:
docker run -d -p 6379:6379 -p 8001:8001 -v E:\docker\redis-stack\data:/data --name redis-stack redis/redis-stack:7.2.0-v18
几个重要参数:
-d
后台运行容器。
-p 6379:6379
Redis 服务端口。
应用程序后面通过:
localhost:6379
连接 Redis。
-p 8001:8001
RedisInsight 的访问端口。
-v E:\docker\redis-stack\data:/data
把 Redis 数据保存到宿主机。
--name redis-stack
容器名称设置为:
redis-stack
五、检查 Redis 是否启动成功
执行:
docker ps
如果能够看到:
redis-stack
说明容器已经成功运行。
也可以执行:
docker exec -it redis-stack redis-cli
进入 Redis。
测试:
set name redis-stack
返回:
OK
再执行:
get name
如果返回:
redis-stack
说明 Redis 已经可以正常使用。
六、打开 RedisInsight
Redis Stack 自带 RedisInsight。
浏览器访问:
http://localhost:8001
进入后就可以通过图形界面查看:
Key
Value
JSON
索引
查询
内存使用
对于学习 Redis Stack 和后面的向量数据调试非常方便。
七、为什么 RAG 要使用 Redis Stack?
普通 Redis 保存的数据通常类似:
key → value
而 RAG 需要保存:
文档
↓
Embedding 模型
↓
向量
↓
向量数据库
例如一段文本:
Spring AI 是 Spring 官方提供的 AI 应用开发框架。
经过 Embedding 模型后,可能变成:
[0.12, -0.36, 0.88, 0.21, ...]
这些数字就是:
Vector
向量
用户提问时:
什么是 Spring AI?
同样转换成向量,然后通过 Redis Stack 查找:
和问题最相似的文档
完整流程就是:
文档
↓
Embedding
↓
Redis Stack
↓
向量存储
查询时:
用户问题
↓
Embedding
↓
Redis Stack 向量检索
↓
相关文档
↓
LLM
↓
最终回答
这就是 RAG 最核心的检索流程。
八、最终架构
安装完成以后,我们的本地环境可以理解成:
Spring AI / Java
│
▼
localhost:6379
│
▼
Redis Stack
│
├── 普通 Redis 数据
├── JSON
└── Vector 向量
RedisInsight:
浏览器
│
▼
localhost:8001
│
▼
RedisInsight
总结
使用 Docker 安装 Redis Stack 非常简单:
下载镜像
↓
启动容器
↓
映射 6379
↓
映射 8001
↓
测试 Redis
核心命令:
docker pull redis/redis-stack:7.2.0-v18
启动:
docker run -d -p 6379:6379 -p 8001:8001 -v E:\docker\redis-stack\data:/data --name redis-stack redis/redis-stack:7.2.0-v18
最终我们得到一个同时支持:
Redis
+
全文搜索
+
向量检索
+
RedisInsight
的本地 Redis Stack 环境。
到这里,RAG 的向量数据库就准备好了。
下一步就可以进入真正的核心:
文档
↓
切分
↓
Embedding
↓
存入 Redis Stack
↓
向量相似度检索
也就是实现真正的文档向量化存储与检索。