
RedisVL 不仅是一个强大的 Python 库还附带了一个专用的命令行工具rvl让您无需编写代码即可完成索引的创建、查看、列表、迁移、删除以及统计信息查看等操作。同时它还集成了实验性的索引迁移功能和 MCP 服务器。本指南将带您全面了解rvl命令的用法。前置条件已安装 RedisVLpip install redisvl有一台运行中的 Redis 实例并已启用RediSearch模块Redis Stack、Redis Cloud 或 Redis Software 均可终端环境已激活包含 RedisVL 的 Python 环境命令结构概览rvl采用分层命令结构主要分组如下rvlversionindexstatsmcpmigratecreateinfolistalldeletedestroywizardplanapplyvalidaterollbackbatch-planbatch-applybatch-resumebatch-status命令用途rvl version显示当前安装的 RedisVL 版本rvl index create根据 YAML 模式文件创建新的搜索索引rvl index info显示索引的详细模式和存储信息rvl index listall列出目标 Redis 部署上的所有搜索索引rvl index delete删除索引定义但保留索引数据文档仍在rvl index destroy删除索引定义并同时清除所有索引数据危险操作rvl stats显示索引的运行统计信息文档数、内存占用等rvl mcp启动 RedisVL MCP 服务器用于模型上下文协议rvl migrate系列实验性索引迁移工具详见 迁移指南提示任何子命令都可通过--help查看详细参数例如rvl index --help或rvl migrate apply --help。索引管理rvl index索引管理是rvl最常用的功能组。我们通过一个完整的示例来学习。1. 准备模式文件schema.yaml索引模式采用 YAML 格式定义索引名称、存储类型、键前缀以及各个字段。下面是一个简单的示例用于存储句子及其对应的向量嵌入# schema.yamlversion:0.1.0index:name:vectorizers# 索引名称prefix:doc# 键前缀存储时自动添加storage_type:hash# 存储类型hash 或 jsonfields:-name:sentence# 文本字段type:text-name:embedding# 向量字段type:vectorattrs:dims:768# 向量维度algorithm:flat# 索引算法flat / hnsw / svs-vamanadistance_metric:cosine# 距离度量cosine / l2 / ip2. 创建索引rvl index create-sschema.yaml成功后会输出Index created successfully。3. 列出所有索引rvl index listall输出示例Indices: 1. vectorizers4. 查看索引详情rvl index info-ivectorizers显示索引的基本信息和所有字段定义包括类型、属性、选项等以表格形式清晰呈现。5. 删除索引保留数据rvl index delete-ivectorizers这会删除索引定义但底层的 Hash 或 JSON 文档仍然保存在 Redis 中。之后您可以重新创建索引来重新索引这些文档。6. 销毁索引删除数据rvl index destroy-ivectorizers危险操作不仅删除索引还会删除所有关联的文档数据。请谨慎使用。统计信息rvl statsrvl stats提供索引的运行指标帮助您了解索引健康状况和资源占用。rvl stats-ivectorizers输出示例部分Statistics: ╭─────────────────────────────┬────────────╮ │ Stat Key │ Value │ ├─────────────────────────────┼────────────┤ │ num_docs │ 0 │ │ num_terms │ 0 │ │ vector_index_sz_mb │ 0 │ │ ... │ ... │ ╰─────────────────────────────┴────────────╯关键指标num_docs索引中的文档数num_terms文本分词数量vector_index_sz_mb向量索引占用的内存MBhash_indexing_failures索引失败数量percent_indexed已索引百分比这些数据有助于您评估索引效率和容量规划。索引迁移rvl migrate实验性功能迁移命令集仍在演进API 和格式未来可能变化。迁移功能支持在不丢失数据的前提下修改索引结构例如添加/删除字段更改向量算法或距离度量量化向量如 float32 → float16以节省内存典型工作流# 1. 交互式生成迁移计划rvl migrate wizard--indexmyindex--urlredis://localhost:6379# 2. 或从 patch 文件生成计划rvl migrate plan--indexmyindex --schema-patch patch.yaml--urlredis://localhost:6379# 3. 执行迁移需指定备份目录rvl migrate apply--planmigration_plan.yaml --backup-dir ./backups--workers4# 4. 验证结果rvl migrate validate--planmigration_plan.yaml更详细的使用方法、性能调优和故障恢复请参阅[RedisVL 索引迁移指南]。连接选项与环境变量默认情况下rvl会尝试连接redis://localhost:6379。您可以通过以下方式指定不同的 Redis 实例命令行参数参数说明默认值--url或-u完整 Redis URL如redis://user:passhost:portredis://localhost:6379--hostRedis 主机地址localhost--port或-pRedis 端口6379--user用户名如启用 ACL无--password或-a密码无--ssl启用 SSLURL 自动变为rediss://否环境变量rvl会优先检查REDIS_URL环境变量若存在则直接使用否则才回退到上述默认值。示例使用带密码和 SSL 的连接rvl index listall--userjane_doe-apassword123--ssl等价于 URLrediss://jane_doe:password123localhost:6379完整实战演示以下是一个从创建到删除的完整流程并附带统计查看# 1. 准备 schema 文件已存在 schema.yaml# 2. 创建索引rvl index create-sschema.yaml# 3. 查看索引列表rvl index listall# 4. 查看索引详情rvl index info-ivectorizers# 5. 查看统计此时文档数为0因为尚未加载数据rvl stats-ivectorizers# 6. 可选加载一些数据...使用 Python 或 redis-cli# 7. 删除索引保留数据rvl index delete-ivectorizers# 8. 确认删除rvl index listall# 9. 如果确认不再需要可彻底销毁危险rvl index destroy-ivectorizers小结rvl是 RedisVL 提供的强大命令行工具让索引管理变得简单高效。核心命令组为index创建、信息、列表、删除、销毁和stats查看统计。迁移功能migrate为实验性但已具备完整的计划-执行-验证-回滚能力。支持灵活的 Redis 连接配置既可通过参数也可通过环境变量。所有命令均支持--help获取详细帮助。借助rvl可以轻松地将索引管理集成到脚本或 CI/CD 流程中大大提升开发运维效率。