Redis có thể được sử dụng như một pub-sub thời gian thực giống như Kafka.
Tôi bối rối nên sử dụng cái nào khi nào.
Bất kỳ trường hợp sử dụng sẽ là một sự trợ giúp tuyệt vời.
Redis có thể được sử dụng như một pub-sub thời gian thực giống như Kafka.
Tôi bối rối nên sử dụng cái nào khi nào.
Bất kỳ trường hợp sử dụng sẽ là một sự trợ giúp tuyệt vời.
Câu trả lời:
Redis pub-sub phần lớn giống như một hệ thống cứu hỏa và quên, nơi tất cả các thông điệp bạn tạo ra sẽ được gửi đến tất cả người tiêu dùng cùng một lúc và dữ liệu không được lưu giữ ở đâu. Bạn có giới hạn về trí nhớ đối với Redis. Ngoài ra, số lượng nhà sản xuất và người tiêu dùng có thể ảnh hưởng đến hoạt động của Redis.
Mặt khác, Kafka là một bản ghi phân tán, thông lượng cao, có thể được sử dụng như một hàng đợi. Tại đây bất kỳ số lượng người dùng nào cũng có thể sản xuất và người tiêu dùng có thể tiêu thụ bất cứ lúc nào họ muốn. Nó cũng cung cấp sự bền bỉ cho các tin nhắn được gửi qua hàng đợi.
Final Take:
Sử dụng Redis:
Sử dụng kafka:
redis
để đảm bảo rằng các thư đã được gửi nhưng chưa được xử lý sẽ không bị mất sau khi khởi động lại redis
. Mặc dù có thể làm điều đó, redis
nhưng không cho phép giữ (hoặc giữ để sử dụng lại các từ của @Karthikeyan) ra khỏi hộp.
Phiên bản Redis 5.0+ cung cấp cấu trúc dữ liệu Stream . Nó có thể được coi là cấu trúc dữ liệu nhật ký với đảm bảo giao hàng. Nó cung cấp một loạt các hoạt động chặn cho phép người tiêu dùng đợi dữ liệu mới được nhà sản xuất thêm vào luồng và thêm vào đó là một khái niệm được gọi là Nhóm người tiêu dùng.
Về cơ bản cấu trúc Stream cung cấp capabilites giống như Kafka.
Đây là tài liệu https://redis.io/topics/streams-intro
Có hai ứng dụng khách Java phổ biến nhất hỗ trợ tính năng này: Redisson và Jedis