gpt4 book ai didi

java - 从 Redis 中提取 key

转载 作者:IT王子 更新时间:2023-10-29 05:58:38 25 4
gpt4 key购买 nike

我使用以下代码提取所有以“NAME:”开头的键,它只返回超过 5,000 条记录(我的索引中有超过 60,000 个键)。任何人都可以解释为什么会发生这种情况,或者我如何从 Redis 数据库中提取所有 key 。

jedis.select(3);

Set<String> names=jedis.keys("NAME:*");

Iterator<String> it = names.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}

最佳答案

当Redis服务器存储了很多记录时,使用jedis.keys()命令可以使其过度处理。因此,导致它在任务未完成时停止。您可以使用 jedis.hscan() 代替它来避免上述问题。

ScanParams scanParam = new ScanParams();
String cursor = "0";
int i = 0;
scanParam.match(prefix + "*");
scanParam.count(50000); // 2000 or 30000 depend on your
do {
ScanResult<Map.Entry<String, String>> hscan = jedis.hscan(key, cursor, scanParam);

// any code here
//
//

// check cursor
cursor = hscan.getStringCursor();
} while("0".equals(cursor));

它在您的情况下效果很好。

关于java - 从 Redis 中提取 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13135573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com