Cache: định nghĩa và mọi lĩnh vực có dùng cache

Bài viết sắp xếp các lĩnh vực dùng cache, từ phần cứng đến web, thành một cây theo cách phân loại của Wikipedia, MDN và tài liệu chính thức của WordPress. CPU, hệ điều hành, cơ sở dữ liệu và trình duyệt đều dùng chung một tên, nên “xóa cache” cũng xóa những thứ khác nhau tùy theo tầng.
Cache là nơi tạm lưu dữ liệu hay dùng hoặc sắp cần đến trong bộ lưu trữ nhanh hơn bản gốc, và khi có cùng yêu cầu thì trả lời bằng bản sao đó thay vì bản gốc.
Bài Cache (computing) trên Wikipedia tiếng Anh chia cache thành cache phần cứng như cache CPU·cache GPU và cache phần mềm như cache đĩa·web·DNS·cơ sở dữ liệu. Cây bên dưới gom cách phân loại này theo vị trí đặt cache, còn cache web theo cách phân loại private cache và shared cache của MDN.
Bạn có thể xem thứ tự cache trình duyệt·CDN·nội bộ server xử lý một yêu cầu WordPress trong bài Cache website & cache phía server: cách cache WordPress hoạt động bằng trình mô phỏng.
Ⅰ. Thiết bị người dùng
Cache trên thiết bị người dùng như máy tính cá nhân và điện thoại thông minh có thể chia thành cache hệ điều hành (OS), cache trình duyệt và cache ứng dụng di động.
Cache đĩa (page cache) giữ dữ liệu đọc từ đĩa trong bộ nhớ và do kernel hệ điều hành quản lý. Cache DNS lưu tên miền và địa chỉ IP vừa tra cứu.
Khi yêu cầu lại cùng tài nguyên, trình duyệt không đi đến server hoặc chỉ kiểm tra xem có thay đổi không. Dùng Service Worker (Cache API) thì có thể mở web app bằng tài nguyên đã lưu ngay cả khi ngoại tuyến.
Ứng dụng xử lý nội dung lớn lưu dữ liệu đã nhận và danh sách xem gần đây trên thiết bị để không phải tải lại cùng dữ liệu.
Ⅱ. Cache server và ứng dụng
Cache phía server là cache gắn vào quá trình tạo trang sau khi yêu cầu đến server. Tài liệu chính thức của WordPress chia nó thành plugin cache (cache trang), object cache và cache server (cache opcode như OPcache).
Với yêu cầu cùng một trang, bản sao đã lưu được gửi đi mà không chạy PHP. Có plugin cache và cache của web server.
Bỏ qua biên dịch khi chạy lại cùng một file. Có sẵn mặc định từ PHP 5.5.
Lưu dữ liệu hay dùng vào kho trên bộ nhớ để không lặp lại cùng truy vấn.
Web framework lưu template đã render và kết quả truy vấn trong cache riêng.
Ⅲ. Cache phân phối nội dung / hạ tầng mạng
Cache của hạ tầng mạng trả lời bằng bản sao ở giữa khách truy cập và server gốc, giảm khoảng cách vật lý và tải cho server gốc. Trong tiêu chuẩn cache HTTP, đây là shared cache mà nhiều khách cùng dùng.
Phân phối từ server gần khách nhất trong các server đặt khắp thế giới. Cấu trúc và lợi ích được trình bày trong CDN là gì? Lý do dùng CDN và 5 lợi ích (bài viết riêng).
Proxy chiều xuôi lưu phản hồi ở phía máy khách như mạng doanh nghiệp, còn proxy chiều ngược lưu ở phía trước server.
Thiết bị mạng lưu trong cache ARP, còn DNS resolver của nhà mạng và công cộng lưu kết quả tra cứu trong thời gian TTL của bản ghi.
Ⅳ. Cache cơ sở dữ liệu và hệ thống lưu trữ
Vì I/O đĩa chậm, cơ sở dữ liệu và thiết bị lưu trữ nạp dữ liệu hay đọc lên bộ nhớ để dùng.
Giữ dữ liệu hay đọc và chỉ mục trong bộ nhớ. Query cache của MySQL đã bị gỡ ở bản 8.0; MariaDB vẫn còn nhưng mặc định tắt.
Bộ nhớ tích hợp trong bộ điều khiển ổ cứng và DRAM bên trong SSD tạm lưu dữ liệu để giảm độ trễ I/O.
Ⅴ. Cache cấp phần cứng
Cache phần cứng là bộ nhớ tốc độ cao nằm trong CPU và GPU, xử lý dữ liệu nhanh hơn bộ nhớ chính (RAM).
L1 có riêng ở mỗi core và chia thành cache lệnh và cache dữ liệu, còn L3 được tất cả core dùng chung. Bộ quản lý bộ nhớ (MMU) lưu kết quả chuyển địa chỉ ảo sang địa chỉ vật lý vào TLB.
Tăng hiệu suất xử lý của GPU trong game, đồ họa 3D và tính toán machine learning.
Ⅵ. Cache môi trường cloud / ảo hóa
Trong môi trường cloud và ảo hóa, image container, môi trường chạy hàm và kết quả build được dùng lại để rút ngắn thời gian triển khai và chạy.
Image Docker gồm nhiều layer, và layer không thay đổi sẽ không bị build hay tải lại.
Giữ lại môi trường chạy của lần gọi đã xong trong một thời gian rồi dùng lại cho lần gọi tiếp theo, giảm thời gian khởi tạo (Cold Start) (Warm Start).
Rút ngắn thời gian build lặp lại.
🔢 FAQ & nội dung đề xuất









ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.