キャッシュキーが "cacheValue"の場合、これに対して行われる呼び出しは常に「ヒット」となります。 CacheSettingキーはあなたが言うことができる '一意の識別子'であり、キャッシュの依存関係は自動的にリセットされる方法です。たとえば、あなたが「AddTwoValuesのキャッシュ値を持っている場合は、2つの値を追加機能(実際にこれをキャッシュする必要がありますが、入力が変化し例えばません)
をキャッシュ
そうに言います(INT A、INT B)」最初の呼び出しは、呼び出しの値をキャッシュします
CacheHelper.Cache(cs => AddTwoValuesHelper(cs, a, b), new CacheSettings(10, "cacheValue"));
のそれがキャッシュして、(あなたは1、それに合格し、2言う) 『3』キーの 『cacheValue』
を
2番目の呼び出しで3、5を渡すと、キャッシュキーは "cacheValue"なので、それは最初の呼び出しと同じ呼び出し3を返し、さらに3 + 5を追加しようとしません。
私は通常、任意のパラメータをキャッシュキーに追加します。
CacheHelper.Cache(cs => AddTwoValuesHelper(cs, a, b), new CacheSettings(10, string.Format("AddTwoValues|{0}|{1}", a, b)));
iは1と2とそれを呼び出す場合は、この方法で、二回、最初はそれがプロセスやキャッシュ「3」キーの「AddTwoValues | 1 | 2」になる再び呼び出されたときに、キーはそう一致しますキャッシュされた値が返されます。
異なるパラメータで呼び出すと、キャッシュキーが異なります。
意味がありますか?
ヘルパー関数のキャッシュ依存関係のコーストークの他の回答:それは自動的にあなたがcms.usersを行う場合(クリア方法を特定
if (cs.Cached)
{
cs.CacheDependency = CacheHelper.GetCacheDependency("cms.user|all");
}
|依存関係など、すべてのユーザーが変更されるたびにこのキャッシュは自動的にクリアされます)
また、この例では、キャッシュする値をgetCachingValueメソッドに渡します。キャッシュに格納するデータは、そのメソッドの内部で(データベースから)取り出す必要があります。 –