类对象支持库。路径:支持库 → 扩展类库 → Redis类。
类型名写「Redis类」。声明时自动创建。
在 IDE 里开通 Redis类 后才能编译。编进用户程序之后,运行时不再检查授权。
协议为 RESP2,经 TCP 连接本机或远程 Redis。默认端口 6379。文本按 UTF-8 收发。
不需要配合 HTTP / MQTT 等其它类。它是独立的 Redis 客户端;本机要有 Redis 服务(或冒烟目录里的模拟器)。
用 Y++ 的 TCP类 也能自己写简易 RESP 模拟服务(监听端口、按行解析 *N/$len),冒烟目录的 redis_mock.exe 就是这种思路的独立小程序。
连接
Redis类 r
如果 (!r.连接("127.0.0.1", 6379, "", 0)) {
输出(r.取错误())
}
- 密码留空:不发送 AUTH。
- 库号大于 0:连接成功后 SELECT。库号 0 不额外选择(仍可用
选择库(0))。 - 失败看
取错误()。 是否已连接()/关闭()/重置():重置会断开并清空错误缓冲,句柄可再连接。
常用命令
| 方法 | Redis |
|---|---|
| 置文本(键, 值, 秒) | SET;秒大于 0 时 SETEX |
| 置新键(键, 值) | SET NX;仅当键不存在时写入 |
| 置已有键(键, 值) | SET XX;仅当键已存在时覆盖 |
| 追加(键, 值) | APPEND,返回字节长度 |
| 取文本(键) / 取并删(键) | GET / GETDEL |
| 批量置(配对文本) / 批量取(键列表) | MSET / MGET(键与值各占一行) |
| 删除(键) | DEL |
| 是否存在(键) | EXISTS |
| 置过期 / 置毫秒过期 / 持久化 | EXPIRE / PEXPIRE / PERSIST |
| 取剩余时间 / 取剩余毫秒 | TTL / PTTL(无过期 -1,不存在 -2) |
| 递增 / 递减 | INCR(BY) / DECR(BY) |
| 取类型 / 取键长 / 改名 | TYPE / STRLEN / RENAME |
| 库键数() | DBSIZE |
| 置哈希 / 取哈希 / 哈希存在 / 取哈希全部 / 删哈希 / 哈希长度 / 哈希递增 | HSET / HGET / HEXISTS / HGETALL / HDEL / HLEN / HINCRBY |
| 列表头加入 / 列表加入 | LPUSH / RPUSH |
| 列表弹出 / 列表尾弹出 / 列表长度 / 列表取范围 | LPOP / RPOP / LLEN / LRANGE |
| 取列表项 / 置列表项 / 裁剪列表 | LINDEX / LSET / LTRIM |
| 集合加入 / 集合删除 / 集合存在 / 取集合全部 / 集合长度 | SADD / SREM / SISMEMBER / SMEMBERS / SCARD |
| 取匹配键(模式) | KEYS;键很多时会堵住服务,只适合少量键 |
| 发布(频道, 消息) | PUBLISH |
| 选择库(库号) | SELECT |
| 探测() | PING |
| 重置() | 断开并清空缓冲 |
| 执行(命令行) | 按空格拆成参数 |
执行 不处理引号。参数里有空格时,用上面的专用方法。
范围
- 阻塞式请求,超时约 8 秒。
- 不做订阅(SUBSCRIBE)长连接读循环。
- 不做 TLS、哨兵和集群重定向。
冒烟
- 双击
_start_mock.bat(启动同目录redis_mock.exe)→127.0.0.1:16379,窗口勿关。 - 打开工程 F5,点「跑全部」。
- 真 Redis:端口改
6379。Windows 可用 Memurai、Dockerredis:7,或 WSLredis-server。