mvcアプリケーションでキャッシュを使用する

effeffe

mvcWebアプリケーションのキャッシュについて質問があります。このように頻繁に使用される多くのリストを保存するためにキャッシュを使用したい

List<IncotermDTO> incoterm;
             string keyIncoterm = "listaIncoterm";
             if (!CacheHelper.Get(keyIncoterm, out incoterm))
            {
                incoterm = BLIncoterm.GetIncoterm(null, null);
                CacheHelper.Add(incoterm, keyIncoterm);
            }
            ViewBag.listaIncoterm = new SelectList(incoterm.OrderBy(x => x.DESCRIPTION), "ID", "DESCRIPTION");

この記事のヒントに従ってくださいhttp://johnnycoder.com/blog/2008/12/10/c-cache-helper-class/

これはクラスヘルパーです

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Caching;

namespace GestioneMovimentazioni
{
    public static class CacheHelper
    {
        /// <summary>
        /// Insert value into the cache using
        /// appropriate name/value pairs
        /// </summary>
        /// <typeparam name="T">Type of cached item</typeparam>
        /// <param name="o">Item to be cached</param>
        /// <param name="key">Name of item</param>
        public static void Add<T>(T o, string key)
        {
            // NOTE: Apply expiration parameters as you see fit.
            // I typically pull from configuration file.

            // In this example, I want an absolute
            // timeout so changes will always be reflected
            // at that time. Hence, the NoSlidingExpiration.
            HttpContext.Current.Cache.Insert(
                key,
                o,
                null,
                System.Web.Caching.Cache.NoAbsoluteExpiration,
                TimeSpan.FromSeconds(120));
        }

        /// <summary>
        /// Remove item from cache
        /// </summary>
        /// <param name="key">Name of cached item</param>
        public static void Clear(string key)
        {
            HttpContext.Current.Cache.Remove(key);
        }

        /// <summary>
        /// Check for item in cache
        /// </summary>
        /// <param name="key">Name of cached item</param>
        /// <returns></returns>
        public static bool Exists(string key)
        {
            return HttpContext.Current.Cache[key] != null;
        }

        /// <summary>
        /// Retrieve cached item
        /// </summary>
        /// <typeparam name="T">Type of cached item</typeparam>
        /// <param name="key">Name of cached item</param>
        /// <param name="value">Cached value. Default(T) if
        /// item doesn't exist.</param>
        /// <returns>Cached item as type</returns>
        public static bool Get<T>(string key, out T value)
        {
            try
            {
                if (!Exists(key))
                {
                    value = default(T);
                    return false;
                }

                value = (T)HttpContext.Current.Cache[key];
            }
            catch
            {
                value = default(T);
                return false;
            }

            return true;
        }


        public static T Get<T>(string key) where T : class
        {
            try
            {
                return (T)HttpContext.Current.Cache[key];
            }
            catch
            {
                return null;
            }
        }




    }
}

これが質問です。このリストは、アプリケーションのすべてのユーザーに対してキャッシュされますか?そうでない場合、どのような実装を提案しますか?

マティアスF

HttpContext.Current.Cacheは、すべてのユーザーで同じです。少なくとも、LoadbalancingまたはWebfarmを使用しない限り。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

MVCアプリケーションでデータをキャッシュする方法

2つのMVCアプリケーション間でキャッシュを共有する

MediaTrackerを使用してSwingアプリケーションで画像をキャッシュする

アプリケーションデータをメモリにキャッシュする:MVC Web API

Mvcアプリケーションキャッシュ

プログラムでAndroidアプリケーションのキャッシュをクリアする

アプリケーションキャッシュを更新する

WPFアプリケーションでWebBrowserキャッシュをクリアする方法は?

DLLでアプリケーションのクラッシュをキャッチする方法

Spring Javaアプリケーションで画像ファイルをキャッシュする方法は?

WKWebViewでアプリケーションキャッシュを有効にする

Androidでアプリケーションキャッシュからビデオを再生する方法

SymfonyアプリケーションでDoctrineのRedisキャッシュを設定する方法

PWA:アプリケーションの一部でキャッシュを除外する

Firefoxでアプリケーションキャッシュの更新を監視する

javax.swingアプリケーションで例外をキャッチする

Spring Bootアプリケーションの起動時にRedisキャッシュをクリアする

Laravelキャッシュ:壊れたアプリケーションをクリアする

別のアプリケーションのキャッシュをクリアするには?

Kubuntuアプリケーションランチャーキャッシュをクリアするにはどうすればよいですか?

流星でセッションを使用するとアプリケーションがクラッシュする

Springbootアプリケーションでモナドを使用して例外をキャッチする

マップを使用して、JavascriptアプリケーションVSRedisで約5000エントリをキャッシュします

Java / J2EE Webアプリケーションのキャッシュを維持する方法は?

electronicjsアプリケーションのキャッシュパスを変更する

アプリケーションがAndroidで開いているときにプッシュ通知をキャプチャする正しい方法

データベースがすでにキャッシュを提供しているのに、なぜアプリケーションレベルのキャッシュを使用するのですか?

Angular 7アプリケーションでプログラムでキャッシュをクリアする方法はありますか?

JavaScriptでアプリケーション画面をキャプチャする

TOP 一覧

  1. 1

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    CSSのみを使用して三角形のアニメーションを作成する方法

  4. 4

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  7. 7

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  8. 8

    Excel - count multiple words per cell in a range of cells

  9. 9

    PictureBoxで画像のブレンドを無効にする

  10. 10

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  11. 11

    スタート画面にシャットダウンタイルを追加するにはどうすればよいですか?

  12. 12

    Python / SciPyのピーク検出アルゴリズム

  13. 13

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  14. 14

    Pythonを使用して、リストからデータを読み取り、特定の値をElasticsearchにインデックス付けするにはどうすればよいですか?

  15. 15

    LinuxでPySide2(Qt for Python)をインストールするQt Designerはどこにありますか?

  16. 16

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  17. 17

    QGISとPostGIS(マップポイント(米国の地図上にraduisを使用した緯度と経度)

  18. 18

    MLでのデータ前処理の背後にある直感

  19. 19

    ターミナルから「入力ソースの変更」ショートカットを設定する

  20. 20

    パンダは異なる名前の列に追加します

  21. 21

    同じクラスの異なるバージョンを使用したクラスローディング:java.lang.LinkageError:名前の重複クラス定義を試行しました

ホットタグ

アーカイブ