はい、redisはそのために適しています。しかし、要点を理解するために、キャッシングには基本的に2つのアプローチがあります。フレームワークを使用するかどうか(および使用するかどうか)に応じて、標準またはプラグインを使用して最初のオプションを使用できる場合があります。
- キャッシュデータベースクエリ、つまり、選択されたクエリとその結果は、指定された時間またはキャッシュをクリアするまで(データベースの更新後に便利)、より迅速にアクセスできるようにredisに保持されます。この場合、組み込みのmysqlクエリキャッシングを使用できます。追加のKey-Valueストアを使用するよりも簡単です。または、キャッシュを使用して、デフォルトのデータベース統合を独自のクラス(http://pythonhosted.orgなど)でオーバーライドできます。 / johnny-cache /)。
- カスタムキャッシング。キャッシュに保持される独自の構造を作成し、データベースからフェッチされたデータを定期的または手動で補充します。リストやソートされたセットなどの組み込みのredis機能を使用できるため、より柔軟で潜在的に強力です。これにより、更新のオーバーヘッドがはるかに小さくなります。もう少しコーディングが必要ですが、よりカスタマイズされているため、通常はより良い結果が得られます。良い例は、IDのredisリストの形式で上位の記事を保持し、redisから同様に指定されたIDを持つシリアル化された記事にアクセスすることです。その記事を正規化しないでおくことができます-つまり。シリアル化されたオブジェクトには、ユーザーIDとユーザー名を含めることができるため、追加のクエリのオーバーヘッドを最小限に抑えることができます。
どちらのアプローチを取るかはあなた次第です。私は個人的にほとんどの場合、アプローチ2を選びます。しかし、もちろん、すべてはあなたが持っている時間とアプリケーションが何をすべきかによって異なります-mysqlクエリキャッシングから始めて、結果が十分でない場合はredisとカスタムキャッシングに移行することをお勧めします。
>