Redis可以像Kafka一样用作实时的发布-订阅。
我不确定在什么情况下使用哪个。
任何使用案例都将是极大的帮助。
Redis可以像Kafka一样用作实时的发布-订阅。
我不确定在什么情况下使用哪个。
任何使用案例都将是极大的帮助。
Redis发布-订阅(Pub-Sub)主要类似于一种无需确认的系统,您生产的所有消息将立即传递给所有消费者,并且数据不会保留在任何地方。与Redis相关的内存受限制。此外,生产者和消费者数量可能会影响Redis的性能。
另一方面,Kafka是一个高吞吐量的分布式日志,可用作队列。这里任意数量的用户都可以随时生产和消费。它还为通过队列发送的消息提供持久性。
最终建议:
使用Redis:
使用kafka:
Redis 5.0+ 版本提供了Stream数据结构。它可以被视为具有传递保证的日志数据结构。它提供了一组阻止操作,允许消费者等待生产者向流中添加新的数据,并且还引入了一个称为"Consumer Groups"的概念。
基本上 Stream 结构提供了与 Kafka 相同的功能。
这里是文档:https://redis.io/topics/streams-intro
有两个最受欢迎的 Java 客户端支持此功能:Redisson 和 Jedis。
如果需要传递可靠性,则 Redisson 提供 ReliableTopic 对象。https://github.com/redisson/redisson/wiki/6.-distributed-objects/#613-reliable-topic