Tair 开发工具集 —— Tair 全生命周期开发助手

本 Skill 为阿里云 Tair(兼容 Redis OSS)数据库提供操作能力和开发指引,覆盖架构选型、数据结构设计、实例创建、连接管理、性能监控、错误排查和备份恢复。

注意: 本 Skill 通过 aliyun CLI 执行真实云操作。恢复操作属高风险,将覆盖当前数据。使用前请确保 RAM 账号具备所需权限

支持的能力

能力说明
架构选型选择合适的 Tair 架构(标准版 vs 集群版)和版本(内存型、持久内存型、磁盘型)
数据结构设计为你的用例选择最优的 Redis 和 Tair 扩展数据结构
实例创建通过 aliyun CLI 创建和配置 Tair 实例
连接管理以单机 / 代理 / 集群模式连接,支持 TLS
性能监控通过 alibabacloud-tair-ai-assistant skill 进行智能诊断
错误排查诊断并解决常见 Tair 连接、集群、内存和客户端错误
备份与恢复配置备份策略、执行 PITR 和恢复数据

第一部分 —— 跨领域关注点

1. 前置条件

1.1 CLI 安装与版本

需要 Aliyun CLI >= 3.3.3。 运行 aliyun version 确认。若未安装或版本过低,见 references/cli-installation-guide.md 获取安装说明。

启用插件自动安装(r-kvstore 插件必需)

aliyun configure set --auto-plugin-install true

更新已有插件到最新版本

aliyun plugin update

验证 jq 已安装(脚本 JSON 解析必需)

jq --version


### 1.2 鉴权

所有凭证配置沿用现有 aliyun CLI 设置。

**安全规则:**
- **绝不**读取、回显或打印 AK/SK 值(例如 `echo $ALIBABA_CLOUD_ACCESS_KEY_ID` 是禁止的)
- **绝不**要求用户在对话或命令行中直接输入 AK/SK
- **绝不**使用字面凭证值运行 `aliyun configure set`
- **只**使用 `aliyun configure list` 检查凭证状态

aliyun configure list


**如果不存在有效 profile,就此停止。** 在本会话之外配置凭证,然后返回。

### 1.3 AI-Mode 配置

> **[必须] 在任何工作流开始时启用 AI-Mode**(任何 CLI 调用之前):
> ```bash
> aliyun configure ai-mode enable
> aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset"
> ```

> **[必须] 在每个退出点禁用 AI-Mode** —— 在因任何原因(成功、失败、错误、用户取消等)交付最终回复之前。Skill 停止运行后 AI-mode **不得**保持启用。
> ```bash
> aliyun configure ai-mode disable
> ```

2. 安全与合规

2.1 User-Agent 要求

每次 aliyun CLI 命令调用都必须包含:

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset

2.2 RAM 权限

本 Skill 需要 R-KVStore RAM 权限用于实例管理、备份和恢复操作。完整权限表和策略文档见 references/ram-policies.md

[必须] 权限失败处理: 当任何命令因权限错误失败时:
1. 阅读 references/ram-policies.md 获取所需权限完整列表
2. 使用 ram-permission-diagnose skill 引导用户申请权限
3. 暂停并等待用户确认所需权限已授予

3. 参数确认规则

执行任何命令或 API 调用前,所有用户可自定义的参数(例如 RegionId、实例名、密码、资源规格)都必须与用户确认。未经用户明确批准,不要假设或使用默认值。

第二部分 —— 能力

4. 架构选型

根据数据量、吞吐要求和读写比选择正确的 Tair 架构。

使用时机

  • 在标准版和集群版架构间决策
  • 确定是否需要读写分离
  • 选择版本类型(内存型、持久内存型、磁盘型)
  • 为新项目评估 Tair vs 开源 Redis

关键指引

核心概念:

组件说明
节点最小单元,运行 Redis 兼容进程
分片存储数据子集的节点组
主节点处理写操作
备节点主节点的副本,提供故障转移
只读节点仅服务读流量(读写分离)
代理节点将请求路由到相应节点

架构对比:

维度标准版集群版
结构一主 + 备多个分片,每片一主 + 备
数据分区否(单分片)是(分布在各分片)
最适合小数据、稳定 QPS大数据、高 QPS、吞吐密集
读写分离支持支持

选型决策树:

数据量 > 单节点容量?
├── 是 → 集群版架构
│   └── 读多? → 启用读写分离
└── 否 → 标准版架构
    └── 读多? → 启用读写分离

参考

5. 数据结构设计

根据你的访问模式和业务需求选择合适的数据结构。

使用时机

  • 为新功能或应用选择数据结构
  • 在 Redis 原生和 Tair 扩展数据结构间选择
  • 迁移数据模型并评估结构替代方案

关键指引

Redis 数据结构:

名称用例
String缓存、计数器、分布式锁、会话存储、限流
Hash对象存储(用户画像、商品信息)、分组字段值对
List消息队列、最新动态、任务队列、栈 / 队列操作
Set唯一集合、打标签、社交图谱(关注者 / 好友)、集合运算
Sorted Set排行榜、排名系统、优先队列、按分数范围查询
Stream事件溯源、日志流、带消费者组的消息队列
Bitmap功能开关、在线状态跟踪、日活用户统计
Bitfield紧凑计数器、定宽整数编码、原子递增
Geospatial基于位置的服务、附近搜索、地理围栏
HyperLogLog独立访客统计、以最小内存做基数估算

Tair 数据结构:

名称用例
exString / TairString(String 增强)带版本号的字符串、有界 INCRBY、用于分布式锁的 CAS/CAD
exHash / TairHash(Hash 增强)字段级 TTL、字段版本化、多设备登录管理
exZset / TairZset(Zset 增强)多维评分(256 维)、多条件排名
GIS / TairGis(地理空间增强)点 / 线 / 面查询、空间关系检查
Doc / TairDoc(JSON)带二叉树索引的 JSON,快速访问子元素
Search / TairSearch类 ES 全文搜索、多列索引、分词
TS / TairTs(时序)实时监控、IoT 数据、两级时间线聚合
Bloom / TairBloom概率成员测试、去重、URL 过滤
Cpc / TairCpc压缩基数估算、流式分析
Roaring / TairRoaring(Bitmap 增强)用户分群、受众定向、多位图运算
Vector / TairVector向量相似搜索、LLM Chatbot、多模态检索

参考

6. 实例创建

在阿里云上创建和配置 Tair 实例,包括白名单配置和公网端点分配。

使用时机

  • 为测试、开发或生产创建新的 Tair 实例
  • 为实例配置网络访问(白名单、公网端点)
  • 搭建 Tair 基准测试或 PoC 环境

6.1 选择实例规格

必需参数:

参数说明示例
VPC_IDVPC IDvpc-bp1xxx
VSWITCH_IDVSwitch IDvsw-bp1xxx

可选参数(含默认值):

参数默认值说明
REGION_IDcn-hangzhou地域 ID
ZONE_IDcn-hangzhou-h可用区 ID
INSTANCE_TYPEtair_rdb实例系列:tair_rdb(DRAM)、tair_scm(持久内存)、tair_essd(ESSD 磁盘)
INSTANCE_CLASStair.rdb.1g实例规格(见下表)
INSTANCE_NAMEtair-benchmark-<timestamp>实例名
CHARGE_TYPEPostPaid计费方式:PostPaid(按量付费)、PrePaid(包年包月)

常用规格(标准架构):

InstanceClass内存带宽最大连接数QPS 参考
tair.rdb.1g1 GB768 Mbps30,000300,000
tair.rdb.2g2 GB768 Mbps30,000300,000
tair.rdb.4g4 GB768 Mbps40,000300,000
tair.rdb.8g8 GB768 Mbps40,000300,000
tair.rdb.16g16 GB768 Mbps40,000300,000
tair.rdb.24g24 GB768 Mbps50,000300,000
tair.rdb.32g32 GB768 Mbps50,000300,000
tair.rdb.64g64 GB768 Mbps50,000300,000

6.2 自动化工作流(脚本)

要快速端到端创建带公网访问的实例,使用一体化脚本:

执行约束:
- 必须使用 scripts/create-and-connect-test.sh 执行此工作流——不要绕过脚本直接调用单个 aliyun r-kvstore 命令
- 不要编写或拼接 aliyun CLI 命令来替代脚本功能
- 模型职责:收集参数 → 设置环境变量 → 运行脚本
export VPC_ID="<用户确认的 VPC_ID>"
export VSWITCH_ID="<用户确认的 VSWITCH_ID>"

可选参数

export REGION_ID="cn-hangzhou"

export ZONE_ID="cn-hangzhou-h"

export INSTANCE_TYPE="tair_rdb"

export INSTANCE_CLASS="tair.rdb.1g"

NAT 环境下手动设置公网 IP

export MY_PUBLIC_IP="your-public-ip"

bash scripts/create-and-connect-test.sh


脚本将自动完成:创建实例 → 等待就绪 → 配置白名单 → 分配公网端点 → 获取公网连接信息。

### 6.3 手动 CLI 步骤

对于自定义需求(PrePaid 包年包月、无公网端点、自定义安全组等),使用手动 CLI 步骤:

**步骤 1 —— 创建实例:**

aliyun r-kvstore create-tair-instance \

--biz-region-id "$REGION_ID" --zone-id "$ZONE_ID" \

--vpc-id "$VPC_ID" --vswitch-id "$VSWITCH_ID" \

--instance-type "$INSTANCE_TYPE" --instance-class "$INSTANCE_CLASS" \

--password "$PASSWORD" --charge-type "$CHARGE_TYPE" \

--shard-type "MASTER_SLAVE" \

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset


**步骤 2 —— 等待实例就绪**(轮询直到 `InstanceStatus` 为 `Normal`):

aliyun r-kvstore describe-instance-attribute \

--instance-id "$INSTANCE_ID" \

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset


**步骤 3 —— 配置白名单:**

aliyun r-kvstore modify-security-ips \

--instance-id "$INSTANCE_ID" --security-ips "$MY_PUBLIC_IP" \

--security-ip-group-name "default" \

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset


**步骤 4 —— 分配公网端点:**

aliyun r-kvstore allocate-instance-public-connection \

--instance-id "$INSTANCE_ID" \

--connection-string-prefix "${INSTANCE_ID}pub" --port "6379" \

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset


### 6.4 成功验证

aliyun r-kvstore describe-instance-attribute \

--instance-id "$INSTANCE_ID" \

--user-agent AlibabaCloud-Agent-Skills/alibabacloud-tair-devtoolset


确认 `InstanceStatus` 为 `Normal` 且公网端点已分配。完整 3 步验证(实例状态、白名单、公网端点)见 [references/verification-method.md](references/verification-method.md)。

### 参考

- [references/instance-creation/connect-create-instance.md](references/instance-creation/connect-create-instance.md) —— 端到端实例创建和连接指南,含 redis-cli 示例
- [references/related-commands.md](references/related-commands.md) —— 完整 CLI 命令和参数参考
- [references/verification-method.md](references/verification-method.md) —— 详细成功验证步骤
- [references/acceptance-criteria.md](references/acceptance-criteria.md) —— CLI 命令正确性标准

---

7. 连接管理

以单机、代理、集群或 TLS 模式使用各种 Redis 兼容客户端连接 Tair 实例。

使用时机

  • 从应用代码连接 Tair 实例
  • 选择合适的客户端库和连接模式
  • 为安全连接配置 TLS/SSL 加密
  • 排查连接问题

关键指引

连接模式:

模式架构说明
单机 / 代理标准版或集群版(代理模式)通过代理节点连接;支持所有 Redis 命令,包括跨槽多键
集群直连集群版(直连模式)直接连接数据节点;需要集群感知客户端;不支持跨槽多键命令
TLS任意(叠加)用 TLS/SSL 加密连接;支持代理和直连两种模式

鉴权格式:

  • 默认账号:仅密码
  • 自定义账号:&lt;user&gt;:&lt;password&gt;
  • redis-cli:使用 REDISCLI_AUTH 环境变量——export REDISCLI_AUTH='InstanceID:Password'

支持的客户端: Jedis、Lettuce、Redisson(Java);redis-py(Python);Predis、phpredis(PHP);StackExchange.Redis(.NET);go-redis(Go);node-redis(Node.js);Spring Data Redis

参考

8. 性能监控

通过 Tair AI 助手(DAS API)进行智能性能监控和诊断。

使用时机

  • 诊断慢查询或性能下降
  • 分析内存使用,识别大 key / 热 key
  • 调优实例参数和连接设置
  • 监控实例健康和资源使用

关键指引

要使用智能诊断,安装并使用 alibabacloud-tair-ai-assistant skill:

npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-tair-ai-assistant --agent <your-agent-platform>

AI 助手提供基于自然语言的诊断,覆盖:实例管理、性能分析、慢查询、内存分析、大 key / 热 key 检测、参数调优和连接排查。

参考

9. 错误排查

诊断并解决鉴权、连接、集群、内存、代理、Lua/事务和客户端特定等常见 Tair 错误。

使用时机

  • 遇到鉴权或连接错误
  • 解决集群相关错误(跨槽、moved、只读)
  • 处理内存耗尽或命令错误
  • 调试客户端特定问题(Jedis、Lettuce、Redisson、go-redis 等)

关键指引

常见错误类别:

类别示例错误典型原因
鉴权NOAUTH Authentication requiredWRONGPASS未提供密码、密码错误,或 Lettuce CLIENT SETINFO bug
连接ERR illegal addressmax number of clients reached客户端 IP 不在白名单、连接池泄漏、DNS 失败
集群CROSSSLOT Keys in request don't hash to the same slotMOVED跨槽多键命令、key 已迁移到另一节点
内存 / 命令OOM command not allowedWRONGTYPEERR unknown command内存超限、数据类型错误、命令不支持
代理模式client ip is not in whitelistredis temporary failure代理白名单、子实例超时、请求队列溢出
Lua / 事务BUSY Redis is busy running a scriptNOSCRIPT长时间运行的 Lua 脚本、脚本 SHA 不在缓存
客户端特定Jedis Could not get a resource from the pool、Lettuce 密码正确却 NOAUTH、go-redis cluster 格式 panic连接池耗尽、版本不兼容、RESP2/RESP3 不匹配

参考

10. 备份与恢复

配置备份策略、创建手动备份、从备份恢复数据,并执行按时间点恢复(PITR)。

使用时机

  • 配置自动备份策略
  • 在高风险操作前创建手动备份
  • 从备份集恢复数据
  • 执行按时间点恢复(PITR)或按键过滤恢复

关键指引

持久化策略:

策略机制关键特性
RDB定期快照文件小、非阻塞备份
AOF记录所有写操作默认每秒 fsync,AOF 重写减少磁盘占用
Tair-Binlog增量 AOF 归档(仅企业版内存型)防止 AOF 重写降级,支持精确到秒的 PITR

关键 CLI 操作:

  • modify-backup-policy —— 修改自动备份计划
  • create-backup —— 创建手动备份
  • describe-backups —— 查询可用备份集
  • restore-instance —— 从备份集或时间点恢复
  • 全量备份:--backup-id "$BACKUP_ID"
  • PITR:--restore-type 1 --restore-time "2024-01-15T10:30:00Z"
  • 按键过滤 PITR:加 --filter-key "session:*,user:*"
⚠️ 高风险操作 —— restore-instance 会覆盖当前数据且不可撤销。
执行任何恢复之前:
1. 验证当前写入流量 —— 检查实例是否有活跃写入;若有,通知用户
2. 创建最新备份 —— 运行 create-backup 保留当前数据作为回滚点
3. 与用户确认 —— 明确告知数据将被覆盖并获得确认

参考

参考索引

参考说明范围
references/cli-installation-guide.mdAliyun CLI 安装和配置指南跨领域
references/ram-policies.mdRAM 权限策略文档跨领域
references/acceptance-criteria.mdCLI 命令正确性标准跨领域(QA)
references/related-commands.md完整 CLI 命令和参数参考实例创建
references/verification-method.md成功验证步骤实例创建
references/architecture-selection/arch-selection.md架构选型决策指南架构选型
references/architecture-selection/arch-compare-oss-redis.mdTair vs 开源 Redis 对比架构选型
references/data-structure-design/data-structure-design.md详细数据结构用例数据结构设计
references/instance-creation/connect-create-instance.md端到端实例创建和连接指南实例创建
references/connection-management/connect-standalone-or-proxy.md单机 / 代理连接示例连接管理
references/connection-management/connect-cluster.md集群连接示例连接管理
references/connection-management/connect-with-tls.mdTLS 连接示例(代理 + 直连)连接管理
references/performance-monitoring/perf-monitoring.md性能监控和诊断性能监控
references/error-troubleshooting/errors-troubleshooting.md完整错误表,含原因和解决方案错误排查
references/backup-and-recovery/backup-recovery.md备份和恢复策略,含 CLI 示例备份与恢复