/ /後で使用するためにPHP Trieを保存する方法は? -PHP、データ構造、トライ

すべての後の使用のためにPHP Trieを保存するには? - PHP、データ構造、トライ

私は、Trieデータ構造を含むアプリケーションをPHPで設計しています。

時間効率の良いプレフィックス検索のために、私はトライを使用しています。

データベースのレコードを使用してトライを構築しています。

現在、データベースには数百万のレコードがあります。そのため、新しいユーザーリクエストごとに、Trieを作成して検索することは毎回実行できません。

代わりに、トライを一度だけ作成して、新しい情報をリクエストするたびに再作成する必要がないように、何らかの方法でこの情報を保存します。その後、すぐに検索を実行できます。 PHPを使用して、作成されたTrieを(1つのユーザーセッションだけでなく、すべてのユーザーリクエストに対して)何らかの方法でキャッシュできますか?

どんな助けでも大歓迎です。

回答:

回答№1は0

いくつかの標準オプションがあります。

以下のような単純なキャッシュを使用して、データベースの結果をメモリにキャッシュします memcached

使用してキャッシュ レディス、おそらくその余分のいくつかを利用する特徴。これには、REDISの構造にデータをロードし、データベース検索結果セットではなく、トライ検索コードをRedisに対して直接動作させるプロセスが含まれる場合があります。

どちらの場合でも、許容できる一定の期間結果をキャッシュします。データベースの結果は何らかの形でメモリに格納されるため、RDBMSに負荷はかかりません。

関連する質問で、あなたは彼が生のシリアル化された変数のサイズは約200mbです。これは、Redisの最大オブジェクトサイズ(512MB)内に十分収まっていますが、memcachedでは問題になる可能性があります。私は最近、ほとんどのアプリサーバーキャッシングに個人的にRedisを使用しています。