luk*_*sch 21
在回答自己问题的良好传统中,我发现了以下内容:
String key = "THEKEY";
ScanParams scanParams = new ScanParams().count(100);
String cur = redis.clients.jedis.ScanParams.SCAN_POINTER_START;
boolean cycleIsFinished = false;
while(!cycleIsFinished) {
ScanResult<Entry<String, String>> scanResult =
jedis.hscan(key, cur, scanParams);
List<Entry<String, String>> result = scanResult.getResult();
//do whatever with the key-value pairs in result
cur = scanResult.getStringCursor();
if (cur.equals("0")) {
cycleIsFinished = true;
}
}
Run Code Online (Sandbox Code Playgroud)
重要的是cur是一个String变量,"0"如果扫描完成则是.
在ScanParams的帮助下,我能够定义从散列中获取的每个块的大致大小.近似,因为哈希可能在扫描期间发生变化,因此可能是循环中元素返回两次.
小智 12
我不喜欢标志变量
Jedis jedis = new Jedis("localhost");
ScanParams scanParams = new ScanParams().count(10).match("*");
String cur = SCAN_POINTER_START;
do {
ScanResult<String> scanResult = jedis.scan(cur, scanParams);
// work with result
scanResult.getResult().stream().forEach(System.out::println);
cur = scanResult.getStringCursor();
} while (!cur.equals(SCAN_POINTER_START));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13110 次 |
| 最近记录: |