Docker安装RedisStack
Docker安装RedisStack1. 前置准备2. 拉取并启动容器3. 验证安装4.简单使用5. 验证 Stack 特有功能 (JSON Search)1. 测试 JSON 存储2. 测试搜索功能6. 常用维护命令1. 前置准备安装 Docker Desktop确保你的 Windows 10/11 已安装并运行 Docker Desktop。启用 WSL 2Docker Desktop 在 Windows 上依赖 WSL 2 后端请确保已在 PowerShell 中执行wsl --install并重启电脑。自定义安装路径# 定义安装包路径请确保文件存在于此路径或者修改为你实际下载的路径$InstallerPath.\Docker Desktop Installer.exe# 定义安装参数数组# 注意每个参数和它的值最好作为数组的独立元素或者用空格隔开的字符串$Arguments (install,--accept-license,--installation-dirD:\DockerDesktop\Docker,--wsl-default-data-rootD:\DockerDesktop\Docker\wsl,--windows-containers-default-data-rootD:\DockerDesktop\Docker\data)# 执行安装# -Wait: 等待安装完成# -Verb RunAs: 以管理员身份运行如果当前PS不是管理员这会弹窗提权Start-Process-FilePath$InstallerPath-ArgumentList$Arguments-Wait-Verb RunAs2. 拉取并启动容器打开 PowerShell 或 CMD执行以下命令即可一键启动 Redis Stackdocker run-d--name redis-stack-p 6379:6379-p 8001:8001 redis/redis-stack:latest参数说明-d: 后台运行容器。--name redis-stack: 指定容器名称。-p 6379:6379: 映射 Redis 服务端口应用程序通过此端口连接。-p 8001:8001: 映射 Redis Insight 可视化界面端口可通过浏览器访问http://localhost:8001管理数据。redis/redis-stack:latest: 使用官方最新镜像。3. 验证安装检查容器状态dockerps若看到redis-stack状态为Up则启动成功。测试连接docker exec-it redis-stack redis-cliping若返回PONG说明服务正常。访问可视化界面在浏览器打开http://localhost:8001即可使用 Redis Insight 进行图形化管理。4.简单使用进入容器内部docker exec-it redis-stack redis-cli基础命令测试设置一个键值对 SET mykeyHello Redis Stack获取值 GET mykey 查看当前所有键 KEYS * 退出 CLIexit5. 验证 Stack 特有功能 (JSON Search)Redis Stack 的核心优势在于支持 RedisJSON 和 RediSearch 模块这是普通 Redis 不具备的。1. 测试 JSON 存储在 redis-cli 中执行 bash 存储一个 JSON 对象 JSON.SET user:1 $ {name:Alice,age:30,tags:[developer,docker]} 查询特定字段 JSON.GET user:1 $.name *若返回 Alice说明 JSON 模块工作正常。*2. 测试搜索功能Redis Stack 允许对 JSON 数据进行全文检索。创建索引 (Create Index)首先定义一个名为idx:users的索引指定对 JSON 路径中的字段进行索引。FT.CREATE idx:users ON JSON PREFIX1user: SCHEMA $.name AS name TEXT $.age AS age NUMERIC $.tags AS tags TAGON JSON: 指定数据源为 JSON 格式。PREFIX 1 user:: 只索引以user:开头的 Key。SCHEMA: 定义字段映射$.name映射为name(文本类型支持全文检索)。$.age映射为age(数值类型支持范围查询)。$.tags映射为tags(标签类型支持精确匹配)。插入测试数据 (Insert Data)使用JSON.SET插入三条模拟用户数据用户1Alice30岁开发者 JSON.SET user:1 ${name:Alice Smith,age:30,tags:[developer,docker]}用户2Bob25岁设计师 JSON.SET user:2 ${name:Bob Jones,age:25,tags:[designer,ui]}用户3Charlie35岁开发者兼经理 JSON.SET user:3 ${name:Charlie Brown,age:35,tags:[developer,manager]}执行搜索测试 (Search Queries)场景 A全文检索名字中包含 “Alice” 的用户FT.SEARCH idx:usersname:Alice预期结果返回user:1的完整 JSON 数据。场景 B组合查询年龄大于 28 且 标签包含 “developer”FT.SEARCH idx:usersage:[28 inf] tags:{developer}预期结果返回user:1(30岁) 和user:3(35岁)排除user:2(25岁)。注意[28 inf]表示大于等于 28{developer}表示标签精确匹配。场景 C模糊搜索名字中包含 “Brown” 的用户FT.SEARCH idx:usersname:Brown预期结果返回user:3。清理环境 (可选)测试完成后若需删除索引和数据删除索引及关联文档 FT.DROPINDEX idx:users DD 手动删除 Key(若 DROPINDEX 未自动清理)DEL user:1 user:2 user:36. 常用维护命令查看日志排查启动错误docker logs redis-stack停止/重启容器docker stop redis-stack dockerstartredis-stack删除容器如需重新配置dockerrm-f redis-stack