AI数据库

Docker 部署 Qdrant 向量数据库

Qdrant 简介 🔖


Qdrant 是一款专为人工智能和机器学习应用设计的开源向量数据库,旨在提供高效的向量存储和相似性搜索能力。‌

核心特点:

  • ‌开源与高性能‌:Qdrant 遵循 Apache 2.0 许可协议,完全开源,并针对高维向量数据进行了深度优化,确保在大规模数据集上的快速查询性能。‌13
  • ‌实时性与灵活性‌:支持实时向量搜索,并允许在查询时结合元数据过滤(通过“负载”功能),满足复杂的业务需求。‌
  • ‌分布式架构‌:支持水平扩展,可部署在多节点集群上,提升系统的可伸缩性和可靠性,适合云原生环境。‌
  • ‌多语言支持‌:RESTful API + gRPC(v1.8+),通过 RESTful API 和 gRPC 接口,与多种编程语言无缝集成,包括 Python、.NET 等。
  • ‌先进算法‌:支持 HNSW、IVF、DiskANN 等索引,采用 HNSW(层次可导航小世界)等近似最近邻(ANN)算法加速搜索,并支持欧几里得距离、余弦相似度等多种距离度量。‌
  • 适用场景:RAG、推荐系统、语义搜索、AI Agent 记忆库

  

Docker部署 🔖


# 拉取最新镜像
docker pull qdrant/qdrant:latest

# 创建持久化目录
mkdir -p /Users/xxx/Documents/docker/qdrant/storage

# 启动容器(带 API Key 认证)
docker run -d \
  --name qdrant \
  -p 6333:6333 \
  -p 6334:6334 \
  -v /Users/xxx/Documents/docker/qdrant/storage:/qdrant/storage \
  -e QDRANT__SERVICE__API_KEY="your_strong_secret_key" \
  qdrant/qdrant:latest

6334 是 Qdrant 官方指定的 gRPC 协议通信端口,和 6333 端口(HTTP/REST 协议)是 Qdrant 提供的两种不同接口:

  • 6333 端口:走 HTTP/REST 协议,适合调试、简单请求、手动调用(比如用 curl 测试、Postman 调接口);
  • 6334 端口:走 gRPC 协议,是 Qdrant 为高性能、大批量数据交互设计的专用端口,也是生产环境中推荐使用的接口方式。
  • 调试阶段可以用 6333 端口快速验证功能,但在正式上线的项目中,建议使用 6334 端口的 gRPC 接口,能显著提升服务的响应速度和并发能力。
  • Qdrant 官方为各种编程语言(Python、Go、Java 等)提供的 SDK,底层默认优先使用 gRPC 协议(即 6334 端口),只有在 gRPC 不可用时才降级到 HTTP。比如 Python 的 qdrant-client 库,只要你配置的地址包含 6334 端口,就会自动用 gRPC 通信。

  

✅ REST API:http://localhost:6333
✅ Dashboard(Web UI):http://localhost:6333/dashboard