Redis可以像Kafka一样用作实时发布订阅。
我很困惑何时使用哪个。
任何用例都会有很大的帮助。
Redis可以像Kafka一样用作实时发布订阅。
我很困惑何时使用哪个。
任何用例都会有很大的帮助。
Answers:
Redis pub-sub就像是一个即弃即用系统,其中您产生的所有消息将立即传递给所有使用者,而数据却不保存在任何地方。关于Redis,您的内存有限。同样,生产者和消费者的数量也会影响Redis的性能。
另一方面,Kafka是一种高吞吐量的分布式日志,可以用作队列。在这里,任何数量的用户都可以生产,而消费者可以在任何时候消费。它还为通过队列发送的消息提供持久性。
最终决定:
使用Redis:
使用kafka:
redis
以确保重新启动以后不会丢失已发送但尚未处理的消息redis
。虽然可以做到这一点,redis
不允许持有(或保留到@Karthikeyan重用的话)的开箱。
Redis 5.0+版本提供了Stream数据结构。可以将其视为具有交付保证的日志数据结构。它提供了一组阻止操作,使消费者可以等待生产者添加到流中的新数据,此外还提供了一个名为“消费者组”的概念。
基本上,Stream结构提供与Kafka相同的功能。
这是文档https://redis.io/topics/streams-intro
有两个最受欢迎的Java客户端支持此功能:Redisson和Jedis