Jedis作为消息队列性能

时间:2016-08-26 14:14:31

标签: java performance redis jedis

我正在使用Redis队列的Java库Jedis ontop,我将其用作生产者/消费者队列。它很容易设置并且运行良好。

以下的消费者代码

List<String> messages = jedis.blpop(0, redisQueueName);
String message = messages.get(1);
//do some stuff

我正在考虑是否可以提高性能,因为我在Redis队列中有大量物品等待接收。我已经定制了我的自定义处理代码,它不需要太长时间(20000纳秒)。

最佳做法是立即从Redis中提取多个项目并批量处理吗?或者我是否更好地调整Redis服务器以获得更好的性能?

1 个答案:

答案 0 :(得分:0)

是的,批量生产确实是最好的做法。你将避免网络往返。

如果队列超出一定范围,随着队列的快速增长并且您希望控制队列大小(内存大小),还需要修剪队列。有时您可能不需要执行队列中的每个条目,而是在队列大小变大时可能会跳过少量条目。

如果你想保留第一个输入的元素,即。 仅保留前100个元素

Ltrim queue 0 100 

要保留最后100个元素

Ltrim queue -1 100

希望这有帮助