3

如果我创建了一个包含以下 Redis 协议格式的命令的文件:

设置键 0 值 0设置键
1 值 1
...
设置键 N 值 N

如何在我的应用程序中使用 Jedis 将其提供给 Redis?

4

2 回答 2

6

您可以使用流水线。它允许发送多个命令而无需等待单独的响应,然后获得唯一的响应。您将使用此功能获得更好的性能(与基本实现相比,您可以期待 x5)。

您的实现可能如下所示:

Pipeline p = jedis.pipelined();
for (int i=0; i < numberOfItems; i++) {
    p.set(key[i], value[i]); 
}   
List<Object> results = p.syncAndReturnAll();
于 2014-03-09T19:33:38.827 回答
0

编辑

我后来发现,OP 正在寻找从 Tomcat 运行的解决方案。此处不建议使用原始 Redis 协议。使用帕斯卡的答案。

/编辑

我同意 Pascal 的观点,即流水线是几乎最快的大规模插入的好方法。但是,OP 已经在谈论 Redis 协议,它比流水线还要快。

然而,它并不是要从 Redis 客户端(如 Jedis)使用,而是要与 redis-cli 一起直接在服务器上使用。

请参阅此处了解更多信息。

希望这会有所帮助,TW

于 2014-03-09T20:56:42.213 回答