ServiceStack が提供する Redis クライアントの v3 を使用しています。私は「デコレータ パターン」を実装しており、キャッシュ ミスがあった場合にデータのリポジトリを参照できるように、キャッシュ ロジックをリポジトリにラップするクラスを用意しています。問題はnull
、エントリが存在するようにキャッシュに追加したいが、値がない場合があることです。これは、その値のデータベースにアクセスしないことを意味します。
私が知る必要があるのは、インターフェイスのキャッシュ ヒットのみのキー/値のマッピングを取得する方法があるかどうかです。IRedisClient
このインターフェイスを使用してキャッシュから値を取得するには、複数の方法があります。まず、方法を試してみましたGetAll<T>
。これは、キャッシュからアイテムを返し、T
存在しない場合はデフォルト値を返します。null
これは、特定のキーのエントリを追加したように見えるため、役に立ちません。
次に試しGetValues
てみましたが、見つかった値のみが返され、関連するキーは返されません。
最後に、試してみGetValuesMap<T>
ましたが、これはまったく同じように動作するようGetAll<T>
です。
キャッシュヒットのみのマッピングを取得する方法を知っている人はいますか?
ありがとう!