Tôi đang cố gắng hiểu sự khác biệt giữa Memcached và APC và lý do tại sao mọi người nói về việc sử dụng cái này hay cái kia hoặc cả hai. Tôi không thể hiểu tại sao bạn không sử dụng cả hai vì tôi nghĩ họ có vai trò hoàn toàn khác nhau. Đây là sự hiểu biết của tôi:
APC
Điều này lưu trữ các đoạn mã PHP và lưu trữ nó trong RAM. Sau đó, khi bạn cần chạy lại đoạn mã đó, nó đã được lưu vào bộ nhớ cache và chạy từ bộ nhớ nhanh như chớp.
Trong trường hợp cụ thể của tôi khi chạy PHP-FPM, điều này sẽ giảm tải cho điều đó.
Ghi nhớ
(Tôi sẽ bỏ qua sự khác biệt giữa hai mô-đun php và coi chúng là cùng một mục đích cho mục đích này)
Điều này lưu trữ các đối tượng DB và lưu trữ chúng trong RAM. Sau đó, khi drupal cần gọi cùng một đối tượng cơ sở dữ liệu, tất cả thông tin đều nằm ở đó và nó không cần phải đến cơ sở dữ liệu.
Trong trường hợp cụ thể của tôi khi chạy MySQL, điều này sẽ giảm tải cho điều đó.
Thùng rác Drupal
Có rất nhiều câu hỏi trên Drupal Stack Exchange về bộ nhớ đệm và bộ đệm trong đó đề cập đến APC & memcached:
- Ở đâu là nơi tốt nhất cho các thùng bộ nhớ cache , Memcache được khuyên dùng vì vấn đề ổn định với APC.
- Trong Có bất kỳ lợi ích nào khi sử dụng mô-đun Memcached khi APC đang hoạt động tốt không ... , có nghĩa là sự lựa chọn tùy thuộc vào sở thích cá nhân.
- Trong Sử dụng Drupal 7 với APC, Varnish và Memcache ... nó nói về việc kết hợp cả hai.
Vì vậy, một số câu hỏi thực sự có nhiều thông tin trong lĩnh vực này khuyên bạn chỉ nên sử dụng Memcached và một vài câu hỏi khác nói rằng không có sự khác biệt quá lớn để giới thiệu cả hai.
Nhưng tôi không hiểu làm thế nào điều này hoạt động. Không phải họ lưu trữ những thứ hoàn toàn khác nhau sao?
Giả sử tôi có một cái nhìn được sử dụng rất nhiều. Không nhớ bộ nhớ đệm các đối tượng DB được hiển thị trong khung nhìn và APC đang lưu bộ đệm mô-đun gọi chúng?
Có phải sự khác biệt là bạn chỉ có thể sử dụng một bộ đệm cho mỗi thùng bộ đệm của Drupal, vì vậy bạn có thể chọn lưu bộ đệm đối tượng DB hoặc mã PHP và trong thực tế, hầu hết các thùng bộ đệm của Drupal đều có sự khác biệt nhỏ về hiệu năng giữa hai hoặc quá lớn để lưu trữ tất cả bộ đệm PHP để lưu trữ các đối tượng DB là lựa chọn hợp lý duy nhất?
(Và do đó, tại sao hầu hết mọi người đề xuất memcache làm tùy chọn bin bộ đệm mặc định tức là $conf['cache_default_class'] = 'MemCacheDrupal';
)