redis-cli 本身不是专门的版本兼容性检查工具,但通过 redis-cli `--version` 查看客户端版本、info server 查看服务端版本,配合 CLUSTER NODES 命令检查集群状态,可以验证集群节点间的版本兼容性。适用场景是 Redis 5.0 及以上集群环境,风险边界在于 redis-cli 与 redis-server 版本必须适配,否则可能出现命令不支持或连接异常。
先说结论:redis-cli 通过版本查询命令和集群状态命令组合使用,可间接检查集群版本兼容性,Redis 5.0 以后版本原生支持集群模式无需外部工具。
- 适合:Redis 5.0 及以上集群环境、需要验证节点版本一致性、排查集群连接问题
- 先看:redis-cli `--version` 客户端版本、info server 服务端版本、CLUSTER NODES 节点状态
- 建议:确保 redis-cli 与 redis-server 版本适配,集群模式连接必须加-c 参数
命令速用版
以下命令可直接在终端执行,用于检查 Redis 集群版本和状态:
redis-cli `--version` 查看 redis-cli 客户端版本
redis-cli -h 127.0.0.1 -p 6379 info server 查看服务端版本信息,关注 redis_version 字段
redis-cli -c -h 127.0.0.1 -p 7000 cluster nodes 集群模式连接并查看节点信息,-c 参数必选
redis-cli -c -h 127.0.0.1 -p 7000 cluster slots 查看集群槽位分布情况
redis-cli -h 127.0.0.1 -p 6379 ping 测试连通性,返回 PONG 表示已连接
为什么会这样
redis-cli 是 Redis 原生命令行客户端工具,版本兼容性检查依赖客户端与服务端的版本匹配。redis-cli 与 redis-server 版本必须适配,一般安装服务端时内置了客户端。Redis 5.0 以后版本,新版 redis-cli 即可建立集群,无需依赖外部程序。版本号包含主版本号、次版本号和修订版本号,主版本号跳跃往往伴随重大功能变革和不兼容性。集群模式连接需要-c 参数,否则无法自动重定向到目标节点,会报错并提示应前往的 Redis 实例地址和端口。
分步处理
第一步:检查客户端版本。执行 redis-cli `--version`,记录返回的版本号,例如 redis-cli 7.0.10。确认客户端版本与目标集群版本是否匹配。
第二步:连接集群节点。执行 redis-cli -c -h [IP] -p [端口],其中-c 选项表示开启集群模式,-h 和-p 指定 Redis 集群某一节点的 IP 和端口。如果集群设置了密码,使用-a 参数或登录后执行 auth 命令。
第三步:查看服务端版本。连接成功后执行 info server,查看 redis_version 字段,确认各节点服务端版本是否一致。
第四步:检查集群状态。执行 cluster nodes 查看所有节点信息,包括节点 ID、IP:PORT、FLAGS 状态、MASTER 归属、LINK_STATE 连接状态。执行 cluster slots 查看槽位分布,确认 0-16383 槽位是否完整分配。
第五步:验证数据读写。在集群模式下执行 set 和 get 命令,确认键值能自动重定向到对应槽位的服务端。若不加-c 参数,读写数据键值经过 Hash 计算得到的 slot 槽号不在当前节点时会报错。
怎么验证是否生效
检查 cluster nodes 输出中所有节点的 LINK_STATE 是否为 connected。查看 cluster slots 输出中槽位范围是否覆盖 0-16383 且无空缺。执行 ping 命令返回 PONG 表示连接正常。在集群模式下执行 set test_key test_value 和 get test_key,能正常读写表示集群功能可用。info server 中各节点的 redis_version 字段应保持一致或兼容。
常见坑
集群模式连接忘记加-c 参数,导致无法自动重定向,读写非当前节点槽位数据时报错。redis-cli 与 redis-server 版本不匹配,可能出现命令不支持或响应格式异常。密码认证方式混淆,redis-cli -a 指定密码、auth 命令、REDISCLI_AUTH 环境变量三种方式需正确选择。集群节点 IP 配置错误,bind 参数应设置为本机通讯 IP 地址而非 127.0.0.1。主从角色配置不当,3 个 Master 角色不能在同一台机器,Slave 角色不能和 Master 在同一机器,否则不能达到容灾容错效果。
常见问题
redis-cli 怎么查看 Redis 版本
执行 redis-cli `--version` 或 redis-cli version 查看客户端版本,连接后执行 info server 查看服务端 redis_version 字段。版本号格式如 7.0.10,主版本号代表主要架构更新,次版本号表示新增功能,修订版本号通常是 bug 修复。
集群模式连接为什么要加-c 参数
-c 参数表示开启集群模式,客户端会自动重定向 key 对应插槽的服务端。不使用-c 不会自动重定向,会报错并提示应前往的 Redis 实例地址和端口。只有所读写数据的键值经过 Hash 计算得到的 slot 槽号刚好在当前节点里面时,不加-c 也可连接。
如何检查集群节点是否都正常
执行 cluster nodes 命令,查看输出中每个节点的 FLAGS 字段是否包含 master 或 slave,LINK_STATE 是否为 connected。执行 cluster slots 确认槽位分布完整,0-16383 槽位无空缺。各节点 ping 测试均返回 PONG 表示连通性正常。
redis-cli 支持哪些认证方式
支持三种方式:redis-cli -a 指定密码在连接时认证、连接后执行 auth 指定密码命令、设置 REDISCLI_AUTH 环境变量。如果集群实例设置了访问密码,校验通过后才可进行缓存数据读写,验证成功后返回 OK。
参考来源
CSDN 博客《redis 运维 (六)redis-cli 命令》
CSDN 博客《Redis 如何使用 redis-cli 查看版本》
CSDN 博客《redis-cli 检查集群状态》
CSDN 博客《redis-cli 的安装与使用》
CSDN 博客《Redis 部署全攻略——Redis 集群模式 (新版,redis-cli 方式)》
CSDN 博客《redis-cli 使用说明》
云服务商文档《Redis-cli 连接》