【发布时间】:2014-03-09 14:21:24
【问题描述】:
如果我创建了一个包含以下 Redis 协议格式的命令的文件:
设置键0值0
设置键 1 值 1
...
SET KeyN 值N
如何在我的应用程序中使用 Jedis 将其提供给 Redis?
【问题讨论】:
如果我创建了一个包含以下 Redis 协议格式的命令的文件:
设置键0值0
设置键 1 值 1
...
SET KeyN 值N
如何在我的应用程序中使用 Jedis 将其提供给 Redis?
【问题讨论】:
您可以使用流水线。它允许发送多个命令而无需等待单独的响应,然后获得唯一的响应。您将使用此功能获得更好的性能(与基本实现相比,您可以期待 x5)。
您的实现可能如下所示:
Pipeline p = jedis.pipelined();
for (int i=0; i < numberOfItems; i++) {
p.set(key[i], value[i]);
}
List<Object> results = p.syncAndReturnAll();
【讨论】:
sync,这将很有帮助
编辑
OP 正在寻找从 Tomcat 运行的解决方案,我后来才发现。此处不建议使用原始 Redis 协议。使用 Pascal 的答案。
/编辑
我同意 Pascal 的观点,即流水线是几乎最快的大规模插入的好方法。 但是,OP 已经在谈论 Redis 协议,它比流水线还要快。
然而,不是要从 Redis 客户端(如 Jedis)使用,而是要与 redis-cli 一起直接在服务器上使用。
更多信息请参见here。
希望这会有所帮助,TW
【讨论】: