Cache là một vấn đề đau đầu

Submitted by superthin on 05/12/2017 - 14:36:48
Kho dự trữ của bạn cache

Trong lĩnh vực tin học, cache là để chỉ "bộ đệm". Nó là nơi lưu trữ mang tính tạm thời với mục đích là để giúp cho việc lấy ra dùng trong tương lai được nhanh hơn, thay vì mọi thứ lại được "khuân vác" từ đầu.

Bộ nhớ đệm mang đến lợi ích thú vị, giúp cho hiệu suất của hệ thống được tăng thêm, hoặc phục vụ làm việc gì đó có vẻ nhanh hơn. Tuy nhiên, cái gì cũng có mặt trái, cache cung cấp lợi ích đi kèm với những "cơn nhức đầu" cho những người sử dụng nó.

Web này có sử dụng cache

Drupal được xem là một CMS thuộc loại quái dị, có thể dùng cho những website bé xíu làm blog cá nhân với lượt truy cập vài chục lượt một ngày, cho đến dùng để vận hành những website lên đến hàng ngàn, hàng trăm ngàn, thậm chí vài triệu lượt truy cập mỗi tháng.

Cơ chế sử dụng cache của Drupal giúp cho website chịu tải khá tốt, phục vụ được lượng truy cập lớn. Nhưng trong quá trình làm việc với Drupal, nếu bỏ quên cache sẽ có lúc làm cho chúng ta không thể lần ra manh mối vì sao có những biểu hiện lạ.

Thin đã đi khóc lóc khắp nơi chỉ vì cache

Mới tuần trước thôi, Thin rất điên đầu với việc một bài viết trên trang, khi truy cập cứ bị thêm vào phía trước URL một tên file index.php/ trông cực kỳ xấu xí. Không tự xử lý được, Thin đã đi lòng vòng các cộng đồng trao đổi thảo luận về Drupal để khóc, hy vọng người ta sẽ trả lời cách xử lý.

Điều tệ hại đó là tiếng Anh của Thin chưa đủ tốt, diễn tả kém đến mức những biên tập viên của các diễn đàn thảo luận chuyển bài viết đi chỗ khác và nhắn tin về việc Thin có thể vi phạm nội quy diễn đàn. Có thể nói, đó là một điều khổ sở. Sau khi lặn ngụp với các công cụ tìm kiếm để tìm đọc, cuối cùng có một người chia sẻ rằng cứ xóa cache nhiều lần thử xem.

Cuối cùng, việc xóa cache nhiều lần đã giải quyết được vấn đề.

Bài học rút ra

Trong quá trình phát triển ứng dụng web nếu có sử dụng cache, luôn phải nhớ để xóa cache (nếu có công cụ dòng lệnh để nhanh chóng/ tự động việc này càng tốt) sau khi thêm thắt, xóa bỏ, chỉnh sửa đoạn mã nào đó hoặc có sự thay đổi về cấu hình, cơ sở dữ liệu,... các thành phần làm lên một trang web.

Cache ở đây không chỉ được hiểu là ở phía server trong mô hình client - server mà còn cần phải xóa cache ở trình duyệt web như Mozilla Firefox, Google Chrome, Microsoft Edge nữa. Nếu quên xóa cache, nhiều lúc sẽ dẫn đến việc "điên cái đầu" vì không hiểu tại sao đã chỉnh chọc rất nhiều, mà mọi thứ vẫn "u như kỹ".