1

私はしばらくの間、このテーマについて読んできました。突然、このソリューションが単なる夢ではなく必要となる日が来ました。

私の読書を通して、一般的な違い (ファイルベース、memcached、共有メモリ (mm)、SQL テーブル、およびカスタム) を見てきました。

私たちが最初に考えたアイデアは、各アプリケーション サーバー (LAMP ボックス) にマウントされた ZFS または AFS を使用し、session.save_pathマウントされたパスからのディレクトリを php.ini 設定でポイントすることでした。

成功談が聞きたいです。

4

5 に答える 5

1

ここでのジョン・キャンベルの答えが役立つはずです

複数のホストで PHP サイトのセッションを処理する最良の方法は何ですか?

Memcached だけを使用しないという彼の指摘は重要です。

また、その質問で述べたように、Zend Platform に付属するセッション クラスタリングを検討することもできますが、そのソリューションにはかなりのライセンス費用がかかります。

于 2008-10-22T16:38:53.843 に答える
0

私は少し偏見がありますが、HTTP_Session2をお勧めします。(私はこのパッケージに取り組んでいます)ファイルを介した従来のセッション処理をサポートする一方で、データベース(MySQL、PostgreSQL、SQliteなどをPEAR :: MDB2を介して)およびmemcachedもサポートします。

個人的には、データベースハンドラーを使用しており、1日あたり最大100,000ユーザーにサービスを提供しており、大きな問題は発生していません。最適化に関しては、次にmemcachedに移行すると思いますが、データベースは、逆方向に曲げる必要のない中間修正に最適です。:-)

ちなみに、memcachedの詳細については、Webクラスターでセッション変数を管理する方法に関する私の回答を確認してください。

編集

あなたが尋ねたので、ここに例があります(APIドキュメントでもっと):

$options = array('memcache' => $memcache);

必須のPECL::Memcache$memcacheのインスタンスはどこにありますか。例がないことはわかっていますが、それを改善します。それまでの間、ソースコードにはかなり優れたドキュメントがインラインで含まれているため、たとえばAPIドキュメントを確認してください。

于 2008-10-22T16:13:46.733 に答える
0

セッションをデータベース (MySQL や PostgreSQL など) に保存することで、頭痛の種が最小限になると思います。特に、アプリが何をするにしても、DB が既にある場合はなおさらです。

複数のマシンにまたがってデータを保存できる Memcached も役立つかもしれませんが、私は経験がありません。

于 2008-10-22T16:01:36.803 に答える
0

セッション用の Memcached ソリューションを検討している場合は、Repcachedを確認してください。サーバーが再起動した場合などにセッションが失われるという問題を軽減する必要があります。

repcached について
「repcached」は、memcached 1.2.x にデータレプリケーション機能を追加するパッチセットです。

注:まだ実際に repcached を試したことはありませんが、調べる価値はあると思いました。

于 2008-10-22T18:40:20.400 に答える
0

私は、共有サーバー上でファイルベースのセッションを 5 年以上問題なく使用しています。非常に大きくなる可能性のあるセッションがいくつかあり (>10MB)、ファイルベースでうまく機能します。通常、私たちの共有サーバーは、各サイトのセッション ファイルを chroot されたディレクトリに保存するため、root だけがそれらすべてにアクセスできます。これは非常に信頼性が高く、問題はありませんでした。データベースまたは memcached の機能の一部が失われますが、それが PHP のデフォルトである理由があります。

于 2008-10-22T16:38:46.760 に答える