Redis 可以像卡夫卡一样作为实时酒吧潜艇使用。
我不知道什么时候该用哪一个。
任何用例都会有很大的帮助。
Redis pub-sub 基本上就像一个火灾和遗忘系统,你生成的所有信息都会立刻传递给所有的消费者,而数据却不会保存在任何地方。关于 Redis,您的内存有限。此外,生产商和消费者的数量也会影响 Redis 的表现。
另一方面,Kafka 是一个高吞吐量的分布式日志,可以用作队列。在这里,任何数量的用户都可以生产,消费者可以随时消费。它还为通过队列发送的消息提供持久性。
最后一个镜头:
使用指南:
使用卡夫卡:
Redis 5.0 + 版本提供了 溪流数据结构。它可以被看作是具有交付保证的日志数据结构。它提供了一组阻塞操作,允许消费者等待生产者添加到流中的新数据,除此之外,还有一个名为“消费者组”的概念。
基本上,Stream 结构提供了与 Kafka 相同的功能。
这是文档 https://redis.io/topics/streams-intro
有两个最流行的 Java 客户端支持这个特性: Redisson和 Jedis
如果需要交付的可靠性,则 Redisson 提供 ReliableTopic 对象