gpt4 book ai didi

java - 从 Redis 获取 key

转载 作者:行者123 更新时间:2023-11-29 08:20:24 25 4
gpt4 key购买 nike

Redis 是否可以一次获取 n 个键?

我的 Redis 中有超过一百万个键,我想准备一个每个包含 100k 条记录的 csv 文件。我想获取 100k 个 key 并准备文件。

最佳答案

您可以使用带 COUNT 选项的 SCAN 命令。 ( link )

以下代码示例使用 jedis作为redis客户端。

    // Assuming redis is running on port 32768 on localhost
// insert some records
Jedis jedis = new Jedis("localhost", 32768);
jedis.set("foo1", "bar1");
jedis.set("foo2", "bar2");
jedis.set("foo3", "bar3");
jedis.set("foo4", "bar4");
jedis.set("foo5", "bar5");

// first value of cursor must be "0"
String cursor = "0";

// fetch 2 keys in every scan
ScanParams scanParams = new ScanParams().count(2);

do {
ScanResult<String> scanResult = jedis.scan(cursor, scanParams);

System.out.println("Keys for cursor ---> " + cursor);
scanResult.getResult().forEach((key) -> {
System.out.println("Key = " + key);
});

cursor = scanResult.getCursor();
} while (!"0".equals(cursor));

这里我在扫描命令的每次迭代中获取 2 个键。 ScanResult 中返回的光标值将作为下一个扫描命令的输入发送。如果没有更多结果,则光标值为“0”。这用于发出 for 循环终止的信号。

我在运行此示例时看到了以下输出。

Keys for cursor ---> 0
Key == foo1
Key == foo3
Keys for cursor ---> 4
Key == foo2
Key == foo
Keys for cursor ---> 1
Key == foo5
Key == foo4
Keys for cursor ---> 5

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

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