Magentoセッションストレージ:RedisとMemcachedの比較


10

私はMagento EE 1.12.2(CE 1.7.2と同じ)を実行していますが、ここにはキャッシング用のRedis(Cm_Cache拡張、Redis v 2.2.12)がありますが、セッションストレージにはMemcacheを使用しています。

これらのMagentoバージョンでは、Redisはそのままではサポートされていません。だから私のここでの懸念は:

  • 労力と速度の向上という観点から、セッションストレージを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は1つのように振る舞うことができます(そしてMemcachedと同様にその仕事をします)
  2. そのアーキテクチャは、より高速なデータの保存に適しています。
  3. データフェッチを高速化
  4. デフォルトでは、ディスクへの永続性
  5. 最大512MBの値(Memcachedはキーごとに1MBに制限されます)
  6. ビルトインクラスタリング

RedisはLRUまたは過負荷を処理するための同様のポリシーをサポートしていません。RedisはCAS(チェックと設定)をサポートしていません。これはキャッシュの一貫性を維持するのに役立ちます。(これを不要にするSETNX操作があります)

ここに画像の説明を入力してください

詳細:Stackoverflow "Memcached対Redis?"

Redisの高速データサポートに関する詳細:Redis.io


OK、それは素晴らしい比較であり、リンクは両者の違いに関する多くの情報を提供します。しかし、すでにMemcacheを使用してRedisに変更している場合、実際に試してみる価値はありますか?
7ochem 2015年

はい。Redisを使用する場合にのみ使用します... Magento EE 1.12.2.beでRedisを使用します
Amit Bera

7ochem、私に反対票を投じましたか?
アミットベラ

3
大きな貢献。同じ質問がありました。現在、redisを使用しています。1つの店舗では見事に機能しますが、別の店舗では少し効果が低くなります。memchacheも試してみてください。@AmitBeraを使用すると、memcache + apcまたはredis + apcをスタックでき、local.xmlはどのように表示されますか。
Kay Int Veen

3
「RedisはLRUまたは過負荷を処理するための同様のポリシーをサポートしていません」- 別のことを意味しているのでない限り、それを実行することをお勧めします。また、OPはキャッシュではなくセッションをRedisに移行しようとしているため、セッションエビクションはサイズベースではなく時間ベースが理想的であり、LRUはボーナスではありません。
Melvyn、2015年

6

1.7.2のCM Redis Cacheはハックではありません。Magentoは、コードがデフォルトで1.8+に追加されました。これは、非常にうまく機能し、簡単に実装できるためです。

Redisでは、データベースのために、キャッシュとセッションを同じサーバーインスタンスでサポートしています。memcachedでは、おそらくmemcachedの複数のインスタンスを起動します。

Memcachedはディスクに書き込む可能性もあります。これは、サービスの再起動後にセッションを保存するために使用できます。ディスクに書き込むとき、memcachedはしばらくロックされるため、サイトでエラーを発生させる可能性があります。このスタックに関する他のいくつかの質問がすでに示されているので、Redisはこれをより適切に処理します。

したがって、memcachedよりもRedisをお勧めします。


5

残念ながら、これは白黒の答えではありません。だから、私はあなたに長所と短所を与えます:

Memcache:

  • ハードコードされたデータ制限(この問題は破棄しないでください。管理セッションは簡単にそれを超える可能性があります)
  • ディスクに保存するときにストール
  • 少し悪いパフォーマンス
  • Magento拡張にはボットディフェンスはありません

Redis:

  • セッションへの同時アクセスが原因で、一部のストアでSession :: readのロックの問題が発生します。
  • 1つのインスタンスで複数のデータベースをサポートしますが、いくつかの注意点があります。
  • Magento拡張機能はボットからの防御をサポートしており、移行スクリプトが付属しています
  • Magento拡張機能は、snappy圧縮アルゴリズムをサポートしています
  • より積極的に維持されるコードベース

ここで、速度が唯一の懸念事項である場合は、負荷テストを実行してください。Blazemeterの無料アカウントでは、50人の仮想ユーザーを操作できます。これは、違いを測定するには十分です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.