结果读取
按命令返回的列选择读取方法:
| 命令 | 返回列 | dbVisitor 读取方式 |
|---|---|---|
| GET | VALUE | queryForString |
| INCR | VALUE | queryForLong |
| LRANGE | ELEMENT | queryForList |
| HGETALL | FIELD, VALUE | queryForPairs |
| MGET | KEY, VALUE | queryForPairs |
读取键值对
Map<String, String> values = jdbc.queryForPairs(
"MGET ? ?", String.class, String.class,
new Object[] { "user:1001:name", "user:1002:name" });
读取弹出的列表元素
BLPOP、BRPOP 返回两行 ELEMENT:第一行是列表键,第二行才是元素。不能用只读取首行的标量方法取消息:
jdbc.executeUpdate("LPUSH ? ?", new Object[] { "queue:demo", "hello" });
List<String> result = jdbc.queryForList("BRPOP ? ?", new Object[] { "queue:demo", 5 }, String.class);
String key = result.get(0);
String message = result.get(1);
注意
示例先放入元素再读取。当前适配器尚未将阻塞超时规范化为空结果集;需要可靠处理空队列和超时的消费者,应直接使用 Redis 客户端。
完整返回类型见命令语法。
自定义结果处理
RowMapper、RowCallbackHandler、ResultSetExtractor 的 API 支持情况与配置方式见结果接收。处理时按上表中的实际结果列读取。