我正在使用Redis队列的Java库Jedis ontop,我将其用作生产者/消费者队列。它很容易设置并且运行良好。
以下的消费者代码
List<String> messages = jedis.blpop(0, redisQueueName);
String message = messages.get(1);
//do some stuff
我正在考虑是否可以提高性能,因为我在Redis队列中有大量物品等待接收。我已经定制了我的自定义处理代码,它不需要太长时间(20000纳秒)。
最佳做法是立即从Redis中提取多个项目并批量处理吗?或者我是否更好地调整Redis服务器以获得更好的性能?
答案 0 :(得分:0)
是的,批量生产确实是最好的做法。你将避免网络往返。
如果队列超出一定范围,随着队列的快速增长并且您希望控制队列大小(内存大小),还需要修剪队列。有时您可能不需要执行队列中的每个条目,而是在队列大小变大时可能会跳过少量条目。
如果你想保留第一个输入的元素,即。 仅保留前100个元素
Ltrim queue 0 100
要保留最后100个元素
Ltrim queue -1 100
希望这有帮助