Bạn có biết?
Khi bạn đặt hàng trên Shopee, hệ thống cần xử lý hàng loạt bước: kiểm tra tồn kho, trừ tiền, tạo vận đơn, gửi thông báo... Nếu một bước thất bại, hệ thống phải retry mà không mất dữ liệu. Đây chính là lý do Redis Streams ra đời — một cơ chế event log mạnh mẽ, khắc phục hoàn toàn nhược điểm của Pub/Sub.
Redis Streams là gì?
Streams là cấu trúc dữ liệu mới nhất trong Redis (từ phiên bản 5.0), hoạt động như một append-only log. Mỗi entry trong stream có một ID duy nhất (dựa trên timestamp) và chứa một hoặc nhiều field-value pairs.
Khác với Pub/Sub (fire-and-forget), Streams:
- ✅ Persist messages — Dữ liệu được lưu trữ, không mất khi restart
- ✅ Consumer Groups — Nhiều consumer xử lý message song song
- ✅ Message acknowledgment — Xác nhận đã xử lý thành công
- ✅ Pending messages — Theo dõi message chưa xử lý
- ✅ History queries — Đọc lại message cũ bất cứ lúc nào
Các lệnh cơ bản
Thêm dữ liệu (XADD)
# Thêm entry vào stream
XADD orders * user_id 1001 product "iPhone 15" amount 999
# "1711785600000-0" → Auto-generated ID
# Thêm với ID cụ thể
XADD orders 1711785600000-0 user_id 1002 product "MacBook" amount 1999
# Giới hạn độ dài stream (MAXLEN)
XADD orders MAXLEN ~ 1000 *

0 bình luận
Đang tải bình luận...
Để lại bình luận