node.js アプリで検索をキャッシュする方法が必要です。redis を使用するアイデアがありましたが、実装方法がわかりません。
私がやりたいことは、RAM の量が限られているため、キャッシュされる検索の数に厳しい制限を設けることです。検索ごとに、検索クエリと対応する検索結果を保存したいと考えています。
キャッシュされる検索数のハード リミットが 4 であるとします。各検索クエリは、次の図のボックスです。
キャッシュされていない新しい検索があった場合、新しい検索は一番上にプッシュされ、一番下の検索クエリは削除されます。
ただし、キャッシュされた検索があった場合、キャッシュされた検索クエリはその位置から削除され、キャッシュの先頭に追加されます。たとえば、search 3
検索された場合。
これを行うことで、比較的同じ量のメモリを使用しますが、最も検索されたクエリは常にキャッシュに残り、人気の低い検索はキャッシュを通過して削除されます。
私の質問は、これをどのように正確に行うのでしょうか? リストでできたのではないかと思いましたが、リストに値が存在するかどうかを確認する方法がわかりません。また、セットのスコアをインデックスに設定するソート済みセットでこれを行うことができるかもしれないと考えましたが、検索クエリがキャッシュ内で移動された場合、すべてのシングルのスコアを変更する必要がありますセット内の要素。