数据库中间件:Milvus和Redis的安装部署
前置条件
- 硬件要求
- 至少 8GB 内存(建议 16GB 或更高)。
- 至少 20GB 可用磁盘空间(Milvus 和 Redis 数据存储)。
- 软件要求
- 已安装 Docker Desktop(Windows 11 或 macOS)。
- 确保 Docker Compose 已包含在 Docker Desktop 中(通常默认安装)。
- 网络要求
- 稳定的互联网连接,用于拉取 Docker 镜像。
- 软件版本
- Milvus:2.4.4(最新稳定版)。
- Redis:7.2(最新稳定版)。
- 端口要求
- Milvus:
19530(gRPC)、9091(RESTful API)。 - Redis:
6379(默认端口)。 - 确保以上端口未被占用。
- Milvus:
一、Windows 11 系统部署 Milvus 和 Redis
1. 安装 Docker Desktop
-
下载 Docker Desktop
访问 Docker 官方网站,下载适用于 Windows 的 Docker Desktop 安装包。 -
安装 Docker Desktop
- 双击下载的安装文件,按照提示完成安装。
-
启用 WSL 2(Windows Subsystem for Linux 2)支持:
-
打开 PowerShell(以管理员身份),运行:
-
wsl --install
3.验证 Docker 安装
-
打开 PowerShell 或命令提示符,运行:
docker --version
docker compose version
- 确保输出版本信息,例如
Docker version 27.x.x和Docker Compose version v2.x.x。
2. 配置 Docker Compose 文件
1.创建项目目录
-
在本地磁盘(例如 C盘)创建一个文件夹,用于存放 Milvus 和 Redis 的配置文件和数据:
mkdir C:\milvus_redis
cd C:\milvus_redis
2.创建 Docker Compose 文件
-
在 C:\milvus_redis 目录下创建文件
docker-compose.yml
内容如下:
version: '3.5'
# Windows/x86_64 Version
# Redis Password set to: 1234services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_ENABLE_V2=true
volumes:
- ./volumes/etcd:/etcd/data
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd/dataminio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- ./volumes/minio:/minio/data
command: minio server /minio/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3standalone:
container_name: milvus-standalone
# 使用多架构镜像,Docker on Windows 会自动拉取 x86_64 版本
image: milvusdb/milvus:v2.4.4
command: ["milvus", "run", "standalone"]
environment:
- ETCD_ENDPOINTS=etcd:2379
- MINIO_ADDRESS=minio:9000
volumes:
- ./volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"redis:
container_name: milvus-redis
image: redis:latest
restart: always
ports:
- "6379:6379"
volumes:
- ./volumes/redis:/data
# 设置 Redis 密码为 1234
command: redis-server --requirepass 1234networks:
default:
name: milvus-network
-
说明
-
Milvus 服务
image: 使用 Milvus 官方镜像milvusdb/milvus:v2.4.10。ports: 映射 gRPC(19530)和 RESTful API(9091)端口。volumes: 数据持久化存储到本地./volumes/milvus目录。environment: 配置日志级别和 Etcd 参数。command: 启动 Milvus 单机模式。
-
Redis 服务
image: 使用 Redis 官方镜像redis:7.2。ports: 映射默认端口6379。volumes: 数据持久化存储到本地./volumes/redis目录。command: 启用 AOF(Append Only File)持久化模式。
volumes: 定义持久化存储卷。
-
3. 启动 Milvus 和 Redis
1.拉取镜像并启动容器
-
在 C:\milvus_redis 目录下,打开 PowerShell,运行:
docker compose up -d
-d表示后台运行容器。
2.验证容器状态
-
检查容器是否正常运行:
docker ps
- 确认
milvus_standalone和redis容器均处于Up状态。
4. 验证 Milvus 服务
1.安装 Milvus Python SDK
- 确保已安装 Python 3.8 或以上版本。
-
在 PowerShell 中安装:
pip install pymilvus
2.测试 Milvus 连接
-
创建 Python 脚本(例如 test_milvus.py ),内容如下:
from pymilvus import connections, utility
# 连接到 Milvus
connections.connect(host="localhost", port="19530")# 检查版本
print(f"Milvus version: {utility.get_server_version()}")
运行脚本:
python test_milvus.py
- 输出类似
Milvus version: 2.4.10表示 Milvus 部署成功。
5. 验证 Redis 服务
1.安装 Redis Python 客户端
-
在 PowerShell 中安装:
pip install redis
2.测试 Redis 连接
-
创建 Python 脚本(例如 test_redis.py ),内容如下:
import redis
# 连接到 Redis
client = redis.Redis(host="localhost", port=6379, decode_responses=True)# 测试读写
client.set("test_key", "Hello, Redis!")
value = client.get("test_key")
print(f"Redis value: {value}")
运行脚本:
python test_redis.py
- 输出类似
Redis value: Hello, Redis!表示 Redis 部署成功。
6. 停止和清理
停止服务:
docker compose down
二、M1 芯片 macOS 系统部署 Milvus 和 Redis
M1 芯片(ARM64 架构)运行 Docker 时需确保镜像兼容性。Milvus 和 Redis 官方镜像均支持 ARM64,因此可以直接使用,但需正确配置 Docker Desktop。
1. 安装 Docker Desktop
-
下载 Docker Desktop
访问 Docker 官方网站,下载适用于 macOS(Apple Silicon)的 Docker Desktop 安装包。 -
安装 Docker Desktop
- 双击下载的
.dmg文件,按照提示拖动安装。 - 安装完成后,启动 Docker Desktop,并确保其在菜单栏运行。
- 双击下载的
-
验证 Docker 安装
docker --version
docker compose version
确保输出版本信息,例如 Docker version 27.x.x 和 Docker Compose version v2.x.x。
4.启用Rosetta(可选)
如果遇到兼容性问题,可在 Docker Desktop 设置中启用 Rosetta 模拟:
- 打开 Docker Desktop -> Settings -> Features in Development -> 勾选 “Use Rosetta for x86/AMD64 emulation on Apple Silicon”。
2. 配置 Docker Compose 文件
1.创建项目目录
-
在终端中创建并进入目录:
mkdir ~/milvus_redis
cd ~/milvus_redis
2.创建 Docker Compose 文件
-
创建文件
docker-compose.yml
version: '3.5'
# M1/ARM64 Mac Version
# Redis Password set to: 1234services:
etcd:
container_name: milvus-etcd
image: quay.io/coreos/etcd:v3.5.5
environment:
- ETCD_AUTO_COMPACTION_MODE=revision
- ETCD_AUTO_COMPACTION_RETENTION=1000
- ETCD_QUOTA_BACKEND_BYTES=4294967296
- ETCD_ENABLE_V2=true
volumes:
- ./volumes/etcd:/etcd/data
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd/dataminio:
container_name: milvus-minio
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
environment:
MINIO_ACCESS_KEY: minioadmin
MINIO_SECRET_KEY: minioadmin
volumes:
- ./volumes/minio:/minio/data
command: minio server /minio/data
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3standalone:
container_name: milvus-standalone
# 使用多架构镜像,Docker on M1 会自动拉取 ARM64 版本
image: milvusdb/milvus:v2.4.4
command: ["milvus", "run", "standalone"]
environment:
- ETCD_ENDPOINTS=etcd:2379
- MINIO_ADDRESS=minio:9000
volumes:
- ./volumes/milvus:/var/lib/milvus
ports:
- "19530:19530"
- "9091:9091"
depends_on:
- "etcd"
- "minio"redis:
container_name: milvus-redis
image: redis:latest # Redis 官方镜像同样支持多架构
restart: always
ports:
- "6379:6379"
volumes:
- ./volumes/redis:/data
# 设置 Redis 密码为 1234
command: redis-server --requirepass 1234networks:
default:
name: milvus-network
- 注意:Milvus 和 Redis 镜像均支持 ARM64,无需额外配置。
3. 启动 Milvus 和 Redis
1.拉取镜像并启动容器
-
在 ~/milvus_redis 目录下,运行:
docker compose up -d
2.验证容器状态
-
检查容器是否运行:
docker ps
- 确认
milvus_standalone和redis容器均处于Up状态。
4. 验证 Milvus 服务
1.安装 Milvus Python SDK
- 确保已安装 Python 3.8 或以上版本。
-
在终端中安装
pip install pymilvus
2.测试 Milvus 连接
-
创建 Python 脚本(例如 test_milvus.py ),内容与 Windows 部分相同:
from pymilvus import connections, utility
# 连接到 Milvus
connections.connect(host="localhost", port="19530")# 检查版本
print(f"Milvus version: {utility.get_server_version()}")
运行脚本:
python test_milvus.py
5. 验证 Redis 服务
1.安装 Redis Python 客户端
-
在终端中安装:
pip install redis
2.测试 Redis 连接
-
创建 Python 脚本(例如 test_redis.py ),内容与 Windows 部分相同:
import redis
# 连接到 Redis
client = redis.Redis(host="localhost", port=6379, decode_responses=True)# 测试读写
client.set("test_key", "Hello, Redis!")
value = client.get("test_key")
print(f"Redis value: {value}")
运行脚本:
python test_redis.py
6. 停止和清理
停止服务
docker compose down
清理数据(可选):
-
删除 milvus 和 redis 目录:
rm -rf ~/milvus_redis/volumes/milvus
rm -rf ~//milvus_redis/volumes/redis
常见问题与解决方法
1.端口冲突
如果 19530、9091 或 6379 端口被占用,修改 docker-compose.yml 中的端口映射(例如 19531:19530),并在客户端
连接时使用新端口。
2.镜像拉取失败
确保网络连接正常,或尝试手动拉取镜像:
docker pull milvusdb/milvus:v2.4.10
docker pull redis:7.2
3.M1 芯片兼容性问题
如果镜像运行失败,检查 Docker Desktop 是否启用了 Rosetta 模拟。
4.连接失败
确保容器运行正常,检查防火墙(Windows)或网络设置(macOS)是否阻止了端口。
5.Redis 数据未持久化
确保 docker-compose.yml 中启用了 --appendonly yes,且 ./redis_data 目录有写权限。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)