【发布时间】:2017-01-03 06:00:12
【问题描述】:
我在 Redis 队列上使用 Java 库 Jedis,我将其用作生产者/消费者队列。它易于设置并且运行良好。
下面的消费者代码
List<String> messages = jedis.blpop(0, redisQueueName);
String message = messages.get(1);
//do some stuff
我正在寻找是否可以提高性能,因为我有大量项目位于 Redis 队列中等待提取。我已经为我的自定义处理代码计时,它不会花费太长时间(20000 纳秒)。
最好的做法是一次从 Redis 中提取多个项目并批量处理它们吗?或者我是否更好地考虑调整 Redis 服务器以获得更好的性能?
【问题讨论】:
-
您的问题可能确实在 Redis 的 IO 上,而不是在处理上 - 我会分批抓取它们;如果没有任何类型的交易,您无论如何都会丢失消息;您使用 Redis 的事实表明这对您来说不是问题。
标签: java performance redis jedis