我想用绝地来扫描我的redis集群。我试着用 .scan(...)
方法,但我得到以下错误:
“jediscluster仅支持具有包含哈希标记的匹配模式的扫描命令”
我的代码如下(节选):
private final JedisCluster redis;
...
String keyPrefix = "helloWorld:*";
ScanParams params = new ScanParams()
.match(keyPrefix)
.count(100);
String cur = SCAN_POINTER_START;
boolean done = false;
while (!done) {
ScanResult<String> resp = redis.scan(cur, params);
...
cur = resp.getStringCursor();
if (resp.getStringCursor().equals(SCAN_POINTER_START)) {
done = true;
}
}
当我运行代码时,在谈到hashtags时会出现一个奇怪的错误:“jediscluster只支持带有包含hashtags的匹配模式的scan命令”
在redis cli中,我可以使用我为keyprefix变量编写的匹配模式。为什么我会出错?
我怎样才能让绝地武士给我看所有与给定子串匹配的钥匙?
1条答案
按热度按时间carvr3hs1#
问题是redis变量是rediscluster对象而不是redis对象。
redis集群对象具有节点和扫描的集合,这与扫描单个节点不同。
要解决此问题,可以扫描每个节点,如下所示: