私はこのようなMVCページでいくつかのキャッシュアプローチを実装しようとしています。静的変数とMVCのキャッシュアプローチ
private static List<T> DATA = new List<T>()
public ActionResult Index()
{
if(DATA.Count()==0)
{
FillGlobalVaribles();
}
}
public JsonResult GC()
{
DATA = new List<T>();
}
private static FillGlobalVariables()
{
DATA = entityObject.foo.ToList();
}
public JsonResult ListItems(string FilterString)
{
DATA.OrderBy(c=>c.ID).ToList();
return Json(new {Result="OK",RecordSet = Data});
}
私の静的変数は、私のコントローラのインデックスメソッドで満たしています。ユーザーがソートを行うと、DATA変数にいくつかのフィルタリングが適用されます。
私はカスタムGCメソッドを実装しています。ユーザーがページを変更して(別のタグをクリックして)、GCメソッドへのajax呼び出しと変数をクリアするとします。
ようにデータ変数が充填され、いくつかのフィルタリングを適用した場合、私の問題は、
である(いくつかの例:純粋なデータ変数は、3000の項目およびフィルタ結果が含まれている200の結果である)と、ページデータ変数に来て、別のユーザーが200個の項目が含まれています。しかし、ユーザーごとに新しいオブジェクトインスタンスを作成する必要があります。
こんにちは。私の質問にお返事いただきありがとうございます。私はlock {}ステートメントを使用しようとしましたが、動作しないと思います。どのように私はロックステートメントを使用できますか?あなたは少しのサンプルを与えることができますか? 私はredisを試みましたが、私はredis働く原則を理解していません。 – Toygar
こんにちは。一般的に、MVCの助けができれば、MVCの統計をはっきりと操る方がはるかに優れています。私は決して*それらを使用してはいけないが、他の方法を最初に探すことはできません。 Redisを使用している小さな例を含めるように元の回答を編集しました。最初にインストールする必要があることに注意してください。 –
こんにちはアダム私はすでにredisのサンプルを共有していただきありがとうございます。しかし、私はどのように私のリストをレディスに保存できますか? redis.push(リストデータ)のように。 –
Toygar