6

SQLite をメイン セッション ストレージとして、または少なくともプライマリ memcached を使用したバックアップ セッション ストレージとして使用することは良い方法ですか?

長所と短所を教えていただけますか?

(私は教育目的でMVCフレームワークを構築しており、さまざまな可能性と実装を考えていました)

4

3 に答える 3

7

SQLite の長所

  • ファイルベースのセッションよりも高速
  • ファイルベースのセッションがより厄介な場所に分散できます

SQLiteの短所

  • 依存関係を作成するSQLiteと監視する何かが必要です
  • そのネイティブ ファイル ベースのセッションを実装するのが難しい
  • 大規模なアプリケーションは、非常に多くの読み取りおよび書き込み要求、断片化、インデックスの更新などによって、特にほとんどすべてのページ ヒットがその特定のテーブルにヒットするため、SQL テーブルをすばやく強制終了する可能性があります。

さらに優れたソリューション - Memcache

セッションは通常、ページがヒットするたびにアクセスされるため、分散システム (たとえば、複数の PHP サーバー) で動作できるようにしながら、データベース層のオーバーヘッドをまったく発生させずに可能な限り高速なメカニズムを使用することは理にかなっています。

PHP で十分にテストされた Memcache を使用します。いくつかの php.ini 設定を変更するだけで memcache セッションを統合することもできます。また、よりきめ細かい制御を行う (または redis などの他のソフトウェアを使用する) ために、独自のカスタム セッション ハンドラーを作成することもできます。

これにはさまざまな長所と短所があります

Memcache の長所

  • 非常に速い
  • うまくスケーリング
  • PHP.INI 経由で簡単に実装

Memcache の短所

  • クラッシュする可能性があり、監視が必要な別のサービス
  • 通常、HDD スペースに比べて限られたリソースである RAM を使用し、監視も必要

これらの両方を監視する他のソフトウェアを使用するか、memcache サービスがまだ実行されていることを確認する cron ジョブ スクリプトを作成する必要がありますが、それはまた別の質問と回答になります。ポイントは、これらの短所はある程度軽減できるということです。

取り上げるトピックの詳細情報

于 2012-11-24T18:31:30.943 に答える
2

セッションへの書き込みアクセスを閉じないとファイルがロックされるため ( session_write_close(); )、ファイルに基づくセッションはお勧めできません。しかし、この問題を回避するために sqlite を使用する必要があるだけなのに、なぜ自分自身/theServer を制限する必要があるのでしょうか?

so sqlite pro: - 使いやすい (php.ini 設定を変更):

session.save_handler = sqlite
session.save_path = "/path/sessions.db"
  • ページのロードが高速化されました (セッションが並行して動作できるようになりました)
  • ajaxで高速化
  • 組み込み機能

sqlite コン

  • セッションへの書き込みが遅い

apcを使いたいのですが、実装が必要で、セキュリティの問題で終わるのではないかと心配しています...

于 2013-03-26T13:31:59.033 に答える
0

PHP のファイル ベース セッションは非常に優れており、高速です。セッションの保存に SQLite を使用しても、セッション管理のオーバーヘッドが増えるだけです。

于 2012-11-24T18:27:01.037 に答える