2012-03-02 12 views
2

フルページキャッシュを実装したいが、現在対処するには1つの問題がある。フルページキャッシュ、ブロック更新

Zend'sとVarienのライブラリMagento E-commerce Community Editionをベースにした電子商取引システムで動作します。私は、出力をキャッシュすることができる午前

が、唯一の問題はある、次のような状況に対処する方法:

ユーザーがサイトに来て、そして/製品カタログに移行して、カートにいくつかの製品を追加し、その後、カタログに戻り。

問題は、カートに商品を追加するときに、更新が必要なブロックがいくつかあることです。だから私は無効にすることができますポスト要求をキャッシュするが、私はいくつかの特定のブロックを更新するか、この "プレースホルダ"を実装する方法は、更新されます?私はいくつかの "ベストプラクティス"やキャッシングのパターンがあるかもしれないと思います。

P.S. magentoみんなに:エンタープライズ版と有料のモジュールについて私に思い出させないでください。

+0

フルページキャッシュ権を取得することは複雑で多くの作業が必要です。おそらく既存のモジュールFWIWへの投資はずっと安くなるでしょう。優先順位を再考することをお勧めします。 – Vinai

+0

この種のキャッシュを実装すると、顧客がログアウトしてカートやウィッシュリストなどのような行動をしなかった場合にのみ、cms /カタログ/製品ページのみをキャッシュするとどうなりますか? –

答えて

4

Magentoのコミュニティ版を使用してはるかに優れた性能を得るために、3つの方法があります。

1.ニス

ワニス(https://www.varnish-cache.org/)自体を呼び出すには、 "Webアプリケーションアクセラレータ"は透明なリバースプロキシです。あなたがイカを知っているならば、あいまいなアイデアを持っているよりも - イニスはイカと似ていますが、スマートで速いだけです。 :)

Varnishを使用すると、私の経験では、Magento Enterprise Editionのフルページキャッシュよりもはるかに高速な独自のフルサイトキャッシュを実装することができます。

しかし、Varnishは標準的なツールではありません。したがって、通常のPHPウェブスペースパッケージにMagentoをインストールすると、インストール/使用できない場合があります。ワニスをインストールして使用するには、ワニスをサービスとして提供するシステムまたはプロバイダに(ルート)アクセスする必要があります。いくつかのMagentoホスティングプロバイダがあり、これはVarnishのようなサービスを含む特別なMagentoホスティングを提供します。

ワニス自体はすべての種類の静的ファイルのamdページをキャッシュします。製品ビュー全体のページ。したがって、ワニスを使用し始める場合は、Magentoを適合させる必要があります。つまり、ページを静的および動的コンテンツに分離する特定のモジュールを作成する必要があります。

例:商品ウィジェットは、カートウィジェットのようなダイマの部品/ブロックのプレースホルダを含む1ページです。静的コンテンツ(ページ)はVarnishによって配信され、動的コンテンツはクライアント(ブラウザ)がアプリケーションサーバー(Magento)にAJAX呼び出しを行うことによって読み込まれます。

あなたのアプリケーションサーバーは、これらの動的ブロックとチェックアウト/顧客ログインのみを呼び出すため、たくさんのパフォーマンスを節約できます。

ワニス用のMagentoモジュールは既にいくつかあります。http://www.magentocommerce.com/magento-connect/pagecache-powered-by-varnish.htmlのように、Googleの「Varnish Magento」のように、十分な情報があります。

2.ビルド独自のcachesystem

は、代わりにあなたがあなた自身の、シンプルな(そして愚かな)キャッシュシステムを構築することができニスを使用します。純粋で静的なHTMLページほど速いものはありません。だから私が考えることができる最もシンプルなキャッシュ(と自分自身を実装したもの)は、あなたのショップの規則を巡回して静的なHTMLページとして製品ページを保存する愚かなcronジョブです。動的コンテンツ(再度カートウィジェット、...)はプレースホルダに置き換えてください。

静的なHTMLページは、静的なので非常に高速にブラウズしているクライアントに配信できます。もう一度AJAX呼び出しを使用して、クライアント側(ブラウザ)で動的コンテンツを置き換える必要があります。

愚かですが、シンプルで機能し、何千もの製品を持っていない限り(クロールには時間がかかります)。

3.ジャストジョークMagentoの

を使用しないでください... :)しかし、はい、Magentoのが遅くなる傾向にあります。

Magentoパフォーマンスの最適化にも非常に便利です:The Magento Best Practice for Performance and Scalibilty Whitepaper。エンタープライズエディションの場合でも、Commiunity Editionにはいくつかのヒントも非常に便利です。

0

私は、顧客がカートにproductoを追加するときに製品を追加するときcache_keyの値は変更が必要になります

protected function _construct() 
{ 
$this->addData(array(
'cache_lifetime' => 3600, 
'cache_tags'  => array(Mage_Catalog_Model_Product::CACHE_TAG), 
'cache_key'  => $this->getProduct()->getId(), 
)); 
} 

を変更され、あなたが特定のIDを置く必要があると思います。あなたはそれを試すことができますか?

2

Magentoの

のためのオープンソースのフルページキャッシュは非常に高速に動作し、それは無料です。 Magento commerceでは、ドメインごとに$ 500を課金するsimular extensionがあります。

0

この質問 - magento open source full page cache - このエリアで利用可能ないくつかの問題とモジュールを扱っています。

フルページキャッシュで問題が発生する大きな範囲があります。 magentoは商品をカートなどに追加する前に小切手を作成しますが、ユーザーに表示する内容が間違っている可能性があります。これには価格設定やその他の重要な領域が含まれます。

関連する問題