如何使用jedis批量插入命令

时间:2014-03-09 14:21:24

标签: redis jedis

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

SET Key0 Value0
SET Key1 Value1
...
SET KeyN ValueN

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

2 个答案:

答案 0 :(得分:4)

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

您的实施可能如下所示:

Pipeline p = jedis.pipelined();
for (int i=0; i < numberOfItems; i++) {
    p.set(key[i], value[i]); 
}   
List<Object> results = p.syncAndReturnAll();

答案 1 :(得分:0)

修改

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

<强> /修改

我同意Pascal的观点,即流水线操作是一种几乎最快的大规模插入的好方法。 但是,OP已经在谈论Redis协议,它甚至比流水线技术更快。

然而,意味着从Redis客户端(如Jedis)使用,但意味着直接在服务器上使用,与redis-cli一起使用。

有关详细信息,请参阅here

希望这有帮助,TW