Sự khác biệt giữa APC & Memcached và cách cả hai có thể được sử dụng cho thùng bộ nhớ cache


7

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:

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';)


Chúng không thể so sánh - APC là bộ đệm opcode (lưu trữ kết quả của các lệnh gọi hàm để tăng tốc độ thực thi mã của bạn). Memcache, hoặc redis hoặc bất kỳ kho lưu trữ dữ liệu trong bộ nhớ nào bạn muốn thay thế ở đây, được sử dụng làm bộ đệm cho dữ liệu của trang web của bạn. Táo và cam thực sự. Như với bất kỳ công nghệ, "tôi nên sử dụng?" chỉ có thể được trả lời bởi bạn, sau khi bạn đã điểm chuẩn mức độ sử dụng của họ trên máy chủ của bạn với ứng dụng của bạn và tải dự kiến ​​của bạn. Xem stackoverflow.com/questions/815041/ cấp để được tư vấn chung về hai điều này
Clive

1
BTW, nhận xét trước đó được đơn giản hóa quá mức (APC có thể được sử dụng làm bộ đệm lưu trữ dữ liệu chẳng hạn, nói chung là không). Tôi khuyên bạn nên đọc càng nhiều càng tốt về cả hai loại bộ đệm để hiểu nếu chúng hữu ích cho bạn
Clive

Tôi chỉ cố gắng để hiểu tại sao trong rất nhiều câu hỏi mà mọi người nói về quyết định giữa APC & memcached. Nếu cả hai hoàn toàn khác nhau thì tại sao cả hai sẽ không có một vị trí trong cùng một dự án Drupal để thể hiện những thế mạnh khác nhau của họ. Có lẽ nếu bạn đặt cùng một thùng bộ đệm được APC bao phủ, trái ngược với memcached, bạn sẽ nhận được một bộ đệm hoàn toàn khác? (Và tùy thuộc vào cách sử dụng và cấu trúc trang web của bạn, người ta sẽ tốt hơn cho bạn)
Dominic Woodman

1
@DominicWoodman Mô-đun APC cho Drupal không thực hiện bộ đệm ẩn mã. Nó là một kết thúc bộ nhớ cache thay thế sử dụng bộ đệm người dùng APC.
mpdon Arena

Tôi cũng nghĩ rằng đây là một bản sao.
mpdon Arena

Câu trả lời:


2

APCu
Không chia sẻ bộ đệm với các máy chủ khác nhưng nhanh hơn.

Memcached
Có thể được chia sẻ với các máy chủ khác và chậm hơn.

Nếu bạn có 2 máy chủ web trở lên (apache / nginx) cho cùng một trang web Drupal, bạn sẽ muốn Memcached. Nếu bạn đang chạy trên một máy đơn thì APCu sẽ là nhanh nhất. Bạn sẽ muốn OPcache bật bất kể điều gì.

LCache là một mô-đun được thiết kế để khắc phục các sự cố khi sử dụng APCu trong môi trường máy chủ web 2 hoặc nhiều hơn.


0

Để tìm ra sự khác biệt chính giữa APC và memcache. Cách cài đặt apcache và memcache. Bạn có thể tham khảo bài viết này. http://www.phpwala.com/php/difference-b between-apc-and-memcache-php / 2016/02

Thực sự hữu ích. Cảm ơn


3
Vui lòng không đăng câu trả lời chỉ liên kết, vì giá trị của câu trả lời sẽ biến mất khi liên kết chết. Bạn có thể bao gồm một số trích dẫn của bài viết trong câu trả lời của bạn để hình ảnh lớn hơn cũng có thể đọc được ở đây?
Neograph734
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.