用途
该技能用于与 Upstash 的 Redis 兼容键值存储进行交互,通过 REST 接口完成数据的读写。当需要保存或获取键值数据、使用 Redis 特性时可以使用它。
主要能力
脚本支持多种 Redis 数据结构与命令:
- 字符串命令:GET、SET、SETNX、SETEX、MGET、MSET、MSETNX、INCR、INCRBY、INCRBYFLOAT、DECR、DECRBY、APPEND、STRLEN、GETRANGE、SETRANGE。
- 哈希命令:HSET、HSETNX、HGET、HMGET、HGETALL、HDEL、HEXISTS、HKEYS、HVALS、HLEN、HINCRBY、HINCRBYFLOAT、HSCAN。
- 列表命令:LPUSH、RPUSH、LPUSHX、RPUSHX、LPOP、RPOP、LRANGE、LLEN、LINDEX、LSET、LREM、LTRIM、LINSERT、LPOS、LMOVE。
- 集合命令:SADD、SREM、SMEMBERS、SISMEMBER、SMISMEMBER、SCARD、SPOP、SRANDMEMBER、SINTER、SINTERSTORE、SUNION、SUNIONSTORE、SDIFF、SDIFFSTORE、SMOVE、SSCAN。
- 有序集合命令:ZADD、ZREM、ZREMRANGEBYRANK、ZREMRANGEBYSCORE、ZSCORE、ZMSCORE、ZRANK、ZREVRANK、ZINCRBY、ZRANGE、ZRANGEBYSCORE、ZREVRANGE、ZREVRANGEBYSCORE、ZCARD、ZCOUNT、ZPOPMIN、ZPOPMAX、ZINTERSTORE、ZUNIONSTORE、ZSCAN。
- 键命令:DEL、UNLINK、EXISTS、TYPE、EXPIRE、EXPIREAT、PEXPIRE、PEXPIREAT、TTL、PTTL、PERSIST、RENAME、RENAMENX、KEYS、SCAN、COPY、DUMP、TOUCH、RANDOMKEY、OBJECT。
- 服务器命令:PING、ECHO、DBSIZE、TIME、INFO、FLUSHDB、FLUSHALL。
使用方式
脚本位置与运行方式:
bun run scripts/upstash-client.ts <command> [args...]
重要:始终使用 bun run 运行,不要直接执行。
配置方式:
脚本默认使用以下环境变量:
UPSTASH_REDIS_REST_URL:Upstash REST API URLUPSTASH_REDIS_REST_TOKEN:Upstash REST API token
如果用户从其他来源(对话上下文、文件等)提供凭据,可使用 --url 和 --token 标志覆盖环境变量:
bun run scripts/upstash-client.ts --url "https://..." --token "AX..." GET mykey
优先级:命令行标志 > 环境变量。
命令选项:
SET 选项包括 --ex <seconds>、--px <ms>、--exat <ts>、--pxat <ts>、--nx、--xx、--keepttl、--get。
ZADD 选项包括 --nx、--xx、--gt、--lt、--ch。
ZRANGE 选项包括 --withscores、--byscore、--bylex、--rev、--limit off,count。
输出格式:字符串值直接打印;null/nil 打印为 (nil);对象/数组以 JSON 美化打印。
确认行为:默认在执行任何破坏性操作(写入、修改或删除)前必须向用户请求确认,包括 SET、HSET、LPUSH、SADD、ZADD、INCR、DEL、EXPIRE、RENAME、FLUSHDB、FLUSHALL 等。如果用户表示不希望被询问确认(如“YOLO mode”“Don't ask for confirmation”“Just do it”“Auto-approve”等),则后续操作可跳过确认,但仍需告知用户已执行的操作。
错误处理:如果凭据缺失或无效,脚本将以错误消息退出。需确保用户已配置环境变量,或通过 --url 和 --token 标志提供凭据。
适用场景
- 用户明确要求从 Upstash/Redis 存储或获取数据
- 需要跨对话或会话持久化数据
- 为昂贵操作实现缓存
- 维护计数器、速率限制或统计信息
- 存储用户偏好或会话数据
- 构建排行榜或排名(有序集合)
- 管理队列或任务列表(列表)
- 打标签或分类(集合)
- 存储结构化对象(哈希)
- 任何需要快速键值存储的场景
限制
资料未提供关于收费、价格、平台支持范围、性能指标或具体使用步骤的更多信息。KEYS 命令在生产环境中应谨慎使用。FLUSHDB 和 FLUSHALL 为危险操作,需格外小心。