2009-04-04 8 views
1

私は最近、内容を本当に簡単に保つためにphpのob_gzhandler関数でgzippingを実装しました。memcache gzippedの内容をPHPでob_gzhandler

私は今このMemcacheにこのコンテンツを追加しようとしていますが、これを行う簡単な方法があることを期待していましたが、これを達成するためにオンラインで何かを見つけることができませんでした。

変数に保持されていたデータを格納するために過去にmemcacheを使用しただけですが、ob_gzhandlerを使用すると、データの変数はありません。だから私は残念なことに、これでどこから始めるべきかを知りません。

おかげでより多くの情報のため ピート

-----編集------------------------- コーディは以下のようにコメント明らかに私の質問はあいまいです。申し訳ありませんが、私はできるだけ多くの情報を提供しようとしていますが、このプロセスでは本当に少し失われています。

私が以前にmemcacheを使用したとき、私はデータがurl要求のハッシュに基づいてmemcacheに存在するかどうかをチェックしました。一致した場合は、キャッシュされたデータを取得しました。そうでなければ、私はそのページを作り、それをキャッシュに格納するだろう。

私は同じことをやろうとしていますが、gpippedデータはphp ob_gzhandlerを使用しています。

しかし、Ciaranが述べたように、非gzipデータを保存するヒットを取るほうが意味があります。

同時に、gzippedバージョンを保存するほうがよかったです(どちらも小さくてキャッシュに保存できるようになりました)。ほとんどすべてのブラウザがgzipと互換性がありますか?

答えて

1

パッシブキャッシュについて質問しているようですが、キャッシュを照会するコードがあり、キャッシュミスが発生した場合、データを生成してキャッシュに挿入して返します。ストーリーの短さは、コードが常にデータの塊を返すことですが、それが計算で返されるかどうかにかかわらず、キャッシュを叩くことによって、呼び出し先コードは気にしません。

これは間違いありませんか?

あなたの質問は最終的には曖昧であり、十分な情報を含んでいません。

+0

申し訳ありませんが、もう少し追加しようとしましたが、キャッシュされたデータを作成するプロセスで正しいです – pedalpete

1

ob_gzhandler()は、クライアントブラウザーがgzip、deflateまたはno encodingをサポートしているかどうかによって、文字列または偽のいずれかを返します。 ob_start()などでこの関数を使用している可能性があります。

結果はクライアントごとに異なるため、結果をキャッシュしてみるのは良い考えではありません(つまり、場合によってはFALSEとなることがあります。場合によっては「deflate」エンコードされた応答となります)。それ以外の場合は「gzip」でコード化された応答になります)。

gzipされているコンテンツをキャッシュし、それぞれの要求を再圧縮することを「ヒット」するのは意味があるようです。実際にはこれは大きなオーバーヘッドではありません。

0

メモリに転送されるバイト数を減らすだけの場合は、サイズに応じて、memcacheに送信される前にデータを圧縮できるクライアントが多数存在します(50Kを圧縮すると便利ですが、5バイトはあまりありません)。 @Ciaranによれば、必要に応じて最終配信のために再圧縮するためのオーバーヘッドはあまりありません。

関連する問題