gpt4 book ai didi

Redis 迭代关键组

转载 作者:IT王子 更新时间:2023-10-29 06:02:58 28 4
gpt4 key购买 nike

我想检查我在 redis 中的所有 key 是否正确。

我像这样分组存储 key :

userid:fname
userid:lname
userid:age
...

我想通过按用户 ID 对它们进行分组来遍历它们,然后根据 fname、lname 和 age 检查每个组。

我该怎么做?

最佳答案

ScanParams params = new ScanParams();
params.match("userid:fname*");

// Use "0" to do a full iteration of the collection.
ScanResult<String> scanResult = jedis.scan("0", params);
List<String> keys = scanResult.getResult();

对 lname 和 age 重复上面的代码。或者,匹配 user:id,然后使用正则表达式过滤组并遍历 keys

编辑:对于大型集合(数百万个键),a scan result will return a few tens of elements .相应地调整您的代码以继续扫描,直到扫描完整个 key 集合:

ScanParams params = new ScanParams();
params.match("userid:fname*");

// An iteration starts at "0": http://redis.io/commands/scan
ScanResult<String> scanResult = jedis.scan("0", params);
List<String> keys = scanResult.getResult();
String nextCursor = scanResult.getStringCursor();
int counter = 0;

while (true) {
for (String key : keys) {
addKeyToProperGroup(key);
}

// An iteration also ends at "0"
if (nextCursor.equals("0")) {
break;
}

scanResult = jedis.scan(nextCursor, params);
nextCursor = scanResult.getStringCursor();
keys = scanResult.getResult();
}

关于Redis 迭代关键组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042941/

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