Tập 18: Django cache kết quả truy vấn bằng cache framework trong 5 phút — khỏi truy vấn lại mỗi request. Nhiều view Django chạy lại cùng một truy vấn ở mọi request dù dữ liệu hiếm khi thay đổi, khiến database chịu tải vô ích và trang chậm dần khi traffic tăng. Giải pháp là cache framework có sẵn của Django: lấy từ cache trước bằng cache.get, chưa có thì truy vấn rồi lưu lại bằng cache.set hoặc gọn hơn bằng get_or_set với timeout 300 giây, và chủ động xóa key cũ bằng cache.delete ngay khi dữ liệu đổi. Backend LocMemCache chỉ phù hợp phát triển và kiểm thử vì mỗi worker có một bản cache riêng; lên production, đổi sang Redis hoặc Memcached trong CACHES mà không cần sửa code dùng cache. Khi áp dụng, bắt đầu từ dữ liệu đọc nhiều, viết ít như danh mục sidebar, đặt timeout khoảng 5 phút và đo lại bằng django-debug-toolbar để thấy số query giảm thực tế.
Đọc bài viết đầy đủ kèm code mẫu đã kiểm chứng chạy được tại: Django: cache kết quả truy vấn bằng cache framework trong 5 phút — khỏi truy vấn lại mỗi request
English version
🎧 Nghe Linh Fish Dev Podcast trên:
