Lưu trữ phiên Magento: Redis vs. Memcached


10

Tôi đang chạy Magento EE 1.12.2 (tương đương CE 1.7.2) trong đó chúng tôi có Redis để lưu vào bộ đệm ( phần mở rộng Cm_Cache, Redis v 2.2.12 ), nhưng chúng tôi sử dụng Memcache để lưu trữ phiên.

Redis không được hỗ trợ ngoài hộp trên các phiên bản Magento này. Vì vậy, mối quan tâm của tôi ở đây là:

  • Có đáng để phiền khi lưu trữ phiên vào Redis về mặt nỗ lực so với cải thiện tốc độ không?
  • Memcache không tốt như vậy hay thậm chí còn tốt hơn?

Trong dự án này, chúng tôi có các tệp phiên lớn vì chúng tôi cần lưu trữ các tệp XML của bên thứ ba vào phiên, vì vậy tối ưu hóa phiên đọc và ghi có thể có tác động đáng kể.

Từ local.xml:

<session_save><![CDATA[memcache]]></session_save>

Và:

<cache>
    <backend>Cm_Cache_Backend_Redis</backend>
    [...]
</cache>

Câu trả lời:


11

Theo như khái niệm của tôi, Redis là tốt nhất:

Memcached là Free & mã nguồn mở, lưu trữ khóa-giá trị trong bộ nhớ, hệ thống lưu trữ đối tượng bộ nhớ phân tán, hiệu năng cao.

Redis là một kho lưu trữ dữ liệu khóa-giá trị nguồn mở, được nối mạng, trong bộ nhớ, với độ bền tùy chọn.

Bởi vì

  1. Memcached là kho lưu trữ khóa / giá trị trong bộ nhớ dễ bay hơi. Redis có thể hành động như một (và thực hiện công việc đó cũng như Memcached)
  2. Kiến trúc của nó phù hợp để lưu dữ liệu nhanh hơn.
  3. Tải dữ liệu nhanh hơn
  4. Kiên trì vào đĩa, theo mặc định
  5. Giá trị kích thước lên tới 512MB (Memcached giới hạn ở 1MB mỗi khóa)
  6. Được xây dựng trong cụm

Redis không hỗ trợ LRU hoặc bất kỳ chính sách tương tự nào để xử lý quá tải Redis không hỗ trợ CAS (kiểm tra và thiết lập) rất hữu ích để duy trì tính nhất quán của bộ đệm - xem các nguồn phổ biến nhất của sự không nhất quán của bộ nhớ Memcached là gì? (mặc dù có một thao tác SETNX làm cho điều này không cần thiết)

nhập mô tả hình ảnh ở đây

Thêm chi tiết: Stackoverflow "Memcached vs. Redis?"

Một số chi tiết với Redis hỗ trợ dữ liệu nhanh hơn: Redis.io


Ok, đó là một so sánh tốt đẹp và liên kết cung cấp nhiều thông tin về sự khác biệt giữa hai. Nhưng có thực sự đáng để thử khi đã sử dụng Memcache để đổi nó thành Redis?
7ochem 20/03/2015

yes.it chỉ lau khi bạn sẽ sử dụng redis ... Bạn sử dụng redis trên Magento EE 1.12.2.be
Amit Bera

7ochem, bạn đã bỏ phiếu cho tôi chưa?
Amit Bera

3
Đóng góp lớn. đã có cùng một câu hỏi. sử dụng redis ngay bây giờ. làm việc tuyệt vời trên 1 cửa hàng, nhưng kém hiệu quả hơn một cửa hàng khác. chắc chắn để thử memchache là tốt. @AmitBera bạn có thể xếp memcache + apc hoặc redis + apc không và làm thế nào một tệp localDB trông như thế nào.
Kay Int Veen

3
"Redis không hỗ trợ LRU hoặc bất kỳ chính sách tương tự nào để xử lý tình trạng quá tải" - bạn có thể muốn thực hiện điều đó , trừ khi bạn có ý gì khác. Ngoài ra, vì OP đang tìm cách di chuyển các phiên thay vì bộ đệm sang Redis, nên việc trục xuất phiên là lý tưởng không dựa trên thời gian dựa trên kích thước vì vậy LRU không phải là một phần thưởng.
Melvyn

6

CM Redis Cache trong 1.7.2 không phải là một bản hack, Magento chỉ thêm mã theo mặc định là 1.8+ vì nó hoạt động rất tốt và được triển khai dễ dàng.

Redis có hỗ trợ để có bộ đệm và phiên trong cùng một máy chủ vì cơ sở dữ liệu. Trong memcached có lẽ bạn sẽ bắt đầu nhiều trường hợp của memcached.

Memcached cũng có khả năng ghi vào đĩa, điều này có thể được sử dụng để lưu các phiên sau khi khởi động lại dịch vụ. Khi ghi vào đĩa, memcached có thể đưa ra lỗi trên trang web của bạn vì nó sẽ bị khóa trong một vài phút. Redis sẽ xử lý việc này tốt hơn vì một số câu hỏi khác trên Stack này đã được hiển thị.

Vì vậy, tôi muốn giới thiệu Redis trên memcached.


5

Thật không may, đây không phải là một câu trả lời trắng đen. Vì vậy, tôi sẽ cung cấp cho bạn những ưu và nhược điểm:

Memcache:

  • giới hạn dữ liệu được mã hóa cứng (không loại bỏ vấn đề này, các phiên quản trị viên có thể dễ dàng phát triển hơn nó)
  • quầy hàng khi lưu vào đĩa
  • hiệu suất kém hơn một chút
  • Phần mở rộng Magento không có bot-def

Redis:

  • Các vấn đề về khóa trong Phiên :: đọc trong một số cửa hàng, gây ra bởi quyền truy cập đồng thời vào phiên.
  • Hỗ trợ cho nhiều cơ sở dữ liệu trong một trường hợp, nhưng với một số cảnh báo.
  • Tiện ích mở rộng Magento có hỗ trợ bảo vệ chống lại bot và đi kèm với tập lệnh di chuyển
  • Phần mở rộng Magento có hỗ trợ thuật toán nén snappy
  • Cơ sở mã được duy trì tích cực hơn

Bây giờ, nếu tốc độ là mối quan tâm duy nhất của bạn, thì chỉ cần chạy thử tải. Một tài khoản miễn phí tại Blazemeter giúp bạn có 50 người dùng ảo để làm việc, điều này đủ để đo lường sự khác biệt.

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.