Зберігання сеансу Magento: Redis vs. Memcached


10

Я запускаю Magento EE 1.12.2 (однаково в CE 1.7.2), де у нас є Redis для кешування ( розширення Cm_Cache, Redis v 2.2.12 ), але ми використовуємо Memcache для зберігання сеансу.

Redis не підтримується у цих версіях Magento. Тож моя турбота тут:

  • Чи варто зайвих клопотів отримати сховище сеансу в Redis з точки зору зусиль проти підвищення швидкості?
  • Хіба Memcache не такий гарний чи, можливо, навіть кращий?

У цьому проекті у нас є великі файли сеансу, оскільки нам потрібно зберігати сторонні XML-файли у сеанс, тому оптимізація читання та запису сеансу може мати значний вплив.

Від local.xml:

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

І:

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

Відповіді:


11

Згідно з моєю концепцією, Redis найкраще:

Memcached - це безкоштовне та відкрите джерело, зберігання ключів у значенні пам'яті, високопродуктивна розподілена система кешування об'єктів пам'яті.

Redis - це мережевий накопичувач даних із відкритим кодом, мережевий запам'ятовуючий ключ, який має додаткову довговічність.

Тому що

  1. Memcached - це нестабільний запам'ятовуючий ключ / пам'ять. Redis може діяти як один (і виконувати цю роботу так само добре, як Memcached)
  2. Його архітектура підходить для швидшого збереження даних.
  3. Дані швидше завантажуються
  4. Забезпеченість на диску за замовчуванням
  5. Значення розміром до 512 Мб (Вилучення обмежено до 1 МБ на ключ)
  6. Вбудований у кластеризацію

Redis не підтримує LRU або будь-яку подібну політику поводження з перевантаженням Redis не підтримує CAS (перевірити і встановити), що корисно для підтримки послідовності кешу - див. Які найпоширеніші джерела невідповідності кешу Memcached? (хоча операція SETNX робить це непотрібним)

введіть тут опис зображення

Детальніше: Stackoverflow "Memcached vs. Redis?"

Деякі деталі щодо швидшої підтримки даних Redis: Redis.io


Гаразд, це приємне порівняння, і посилання дає багато інформації про відмінності між ними. Але чи справді варто спробувати, коли вже використовуєте Memcache, щоб змінити його на Redis?
7оч.

yes.it only woth when you will use redis ... You use redis on Magento EE 1.12.2.be
Amit Bera

7ochem, ти дав мені голос?
Аміт Бера

3
Великий внесок. виникало те саме питання. використовуючи redis зараз. працює чудово в 1 магазині, але трохи менш ефективно в іншому. неодмінно спробуйте також мемчеш. @AmitBera Ви можете скласти memcache + apc або redis + apc, і як би виглядав local.xml тоді.
Kay Int Veen

3
"Redis не підтримує LRU або будь-яку подібну політику щодо обробки перевантажень" - можливо, ви захочете це зробити , якщо ви не маєте на увазі щось інше. Крім того, оскільки ОП прагне перенести сеанси замість кешу на Redis, виселення сеансу в ідеалі не за розмірами, що базується на часі, тому LRU не є бонусом.
Мельвін

6

CM Redis Cache в 1.7.2 не є злому, Magento просто додав код за замовчуванням до версії 1.8+, оскільки він працює так добре і легко реалізується.

Redis має підтримку кешу та сеансу в тому ж екземплярі сервера через бази даних. У memcached ви, ймовірно, запустили кілька примірників memcached.

Memcached також має можливість запису на диск, це може бути використано для збереження сеансів після перезапуску послуги. Під час запису на диск memcached може призвести до помилок на вашому сайті, оскільки він заблокується на кілька моментів. Redis впорається з цим краще, як і деякі інші запитання щодо цього стека.

Тож я б рекомендував Редіс за печаткою.


5

Це, на жаль, не є чорно-білою відповіддю. Отже, я дам вам свої плюси та мінуси:

Memcache:

  • ліміт даних із жорстким кодом (не відкидайте цю проблему, сеанси адміністрування можуть легко перевищувати її)
  • при зберіганні на диску
  • трохи гірші показники
  • Розширення Magento не має бот-захисту

Редіс:

  • Проблеми з блокуванням у сесії: читання в деяких магазинах, викликане одночасним доступом до сеансу.
  • Підтримка декількох баз даних в одному екземплярі, але з деякими застереженнями.
  • Розширення Magento підтримує захист від ботів і постачається зі сценаріями міграції
  • Розширення Magento підтримує алгоритм швидкого стиснення
  • Більш активно підтримувана база коду

Тепер, якщо швидкість - це ваша єдина проблема, тоді просто запустіть тест навантаження. Безкоштовний обліковий запис у Blazemeter надає вам 50 віртуальних користувачів для роботи, що має бути достатньо для вимірювання відмінностей.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.