Bạn có biết?
Khi bạn đăng nhập Facebook, hệ thống tạo một session — một “vé thông hành” lưu trạng thái đăng nhập của bạn. Nếu lưu session trên file server, bạn không thể scale sang nhiều server. Nếu lưu trên database, mỗi request đều phải query database → chậm. Redis giải quyết cả 2 vấn đề: nhanh, và mọi server đều truy cập được.
Session là gì?
Session là cơ chế lưu trữ trạng thái user giữa các request HTTP (vốn stateless). Khi user đăng nhập, server tạo session chứa thông tin user và trả về session ID qua cookie.
Tại sao dùng Redis làm Session Store?
- Nhanh — In-memory, đọc/ghi trong microsecond
- Shared — Mọi server đều truy cập cùng dữ liệu
- TTL tự động — Session hết hạn tự động xóa
- Scalable — Hàng triệu session không vấn đề
Cấu trúc dữ liệu Session
Mỗi session là một Hash trong Redis:
# Key: session:{session_id}
# Value: Hash chứa thông tin session
127.0.0.1:6379> HSET session:abc123 user_id 42 username "tan" role "admin"
(integer) 3
127.0.0.1:6379> HSET session:abc123 login_time "2026-03-30T12:00:00Z"
(integer) 1
127.0.0.1:6379> HSET session:abc123 ip "192.168.1.1" user_agent "Mozilla/5.0"
(integer) 1
# Đặt TTL — session hết hạn sau 30 phút
127.0.0.1:6379> EXPIRE session:abc123 1800
(integer) 1
# Lấy thông tin session
abc123
)
)
)
)
)
)
)
)

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