关闭。这个问题需要更加突出重点。它目前不接受答案。**想改进这个问题吗?**通过编辑这篇文章更新这个问题,使它只关注一个问题。
4个月前关门了。改进这个问题redis可以像kafka一样作为实时的pub sub。我不知道什么时候用哪一个。任何用例都会有很大的帮助。
piah890a1#
redis pub-sub主要是一个火而忘却的系统,您生成的所有消息都将一次传递给所有的消费者,而数据则不存在任何地方。关于redis,您的内存有限制。此外,生产者和消费者的数量也会影响redis的性能。另一方面,kafka是一种高吞吐量的分布式日志,可以用作队列。在这里,任何数量的用户都可以生产,消费者可以随时消费。它还为通过队列发送的消息提供持久性。最终拍摄:使用redis:如果你想要一个“火与忘”的系统,你产生的所有信息都会立即传递给消费者。如果速度是最重要的。如果你能忍受数据丢失。如果不希望系统保留已发送的消息。要处理的数据量并不大。使用Kafka:如果你想要可靠性。如果您想让您的系统拥有一份即使在消费之后也已发送的消息副本。如果你不能忍受数据丢失。如果速度不是一个大问题。数据量很大
wgx48brx2#
redis5.0+版本提供了流数据结构。它可以被视为具有交付保证的日志数据结构。它提供了一组阻塞操作,允许消费者等待生产者添加到流中的新数据,此外,还提供了一个称为消费者组的概念。基本上,流结构提供了与Kafka相同的能力。这是文件https://redis.io/topics/streams-intro有两个最流行的java客户机支持这个特性:redisson和jedis
2条答案
按热度按时间piah890a1#
redis pub-sub主要是一个火而忘却的系统,您生成的所有消息都将一次传递给所有的消费者,而数据则不存在任何地方。关于redis,您的内存有限制。此外,生产者和消费者的数量也会影响redis的性能。
另一方面,kafka是一种高吞吐量的分布式日志,可以用作队列。在这里,任何数量的用户都可以生产,消费者可以随时消费。它还为通过队列发送的消息提供持久性。
最终拍摄:
使用redis:
如果你想要一个“火与忘”的系统,你产生的所有信息都会立即传递给消费者。
如果速度是最重要的。
如果你能忍受数据丢失。
如果不希望系统保留已发送的消息。
要处理的数据量并不大。
使用Kafka:
如果你想要可靠性。
如果您想让您的系统拥有一份即使在消费之后也已发送的消息副本。
如果你不能忍受数据丢失。
如果速度不是一个大问题。
数据量很大
wgx48brx2#
redis5.0+版本提供了流数据结构。它可以被视为具有交付保证的日志数据结构。它提供了一组阻塞操作,允许消费者等待生产者添加到流中的新数据,此外,还提供了一个称为消费者组的概念。
基本上,流结构提供了与Kafka相同的能力。
这是文件https://redis.io/topics/streams-intro
有两个最流行的java客户机支持这个特性:redisson和jedis