今日のアプリケーションは、極端なレベルのトランザクション負荷をスケーリングして処理する必要があります。 ただし、データベースは拡張できないため、ボトルネックになります。 これを解決するために、多くの人が インメモリ分散キャッシュ 線形にスケーリングし、データベースのボトルネックを取り除くためです。
分散キャッシュには通常、トランザクションデータと参照データのXNUMX種類のデータが含まれます。 トランザクションデータは非常に頻繁に変更されるため、非常に短時間キャッシュされます。 ただし、キャッシングはパフォーマンスとスケーラビリティを大幅に向上させます。
一方、参照データはあまり頻繁に変更されません。 静的データまたは動的データで、おそらくXNUMX時間ごと、XNUMX日ごとなどに変化する場合があります。場合によっては、このデータは巨大になる可能性があります(ギガバイト単位)。 アプリケーションが実行時にデータをロードする必要がないため、キャッシュの起動時にこの参照データを分散キャッシュにプリロードできると便利です。 参照データのロード 特に大量のデータがある場合、実行時にアプリケーションのパフォーマンスが低下します。
NCache 詳細 NCache ドキュメント キャッシュローダーとリフレッシャードキュメント
参照データを分散キャッシュにプリロードするにはどうすればよいですか?
XNUMXつのアプローチは、アプリケーションの起動時に、必要なすべての参照データをデータベースからフェッチして分散キャッシュに配置するようにアプリケーションを設計することです。
ただし、このアプローチでは他にもいくつかの問題が発生します。 まず、アプリケーションがキャッシュのプリロードに関与しているため、アプリケーションの起動が遅くなります。 次に、分散キャッシュを共有する複数のアプリケーションがある場合は、各アプリケーションでコードが重複しているか、すべてのアプリケーションが分散キャッシュをプリロードするXNUMXつのアプリケーションに依存しています。 最後に、アプリケーションにキャッシュプリロードコードを埋め込むと、アプリケーションに属していないコードを追加するため、アプリケーションの設計が破損します。 もちろん、これらの状況はどちらも非常に望ましいものではありません。
これを与えるとどうなりますか プリロードの責任 分散キャッシュ自体に? この場合、プリロードはキャッシュの起動プロセスの一部である可能性があるため、アプリケーションはまったく関与しません。 起動時に必要なすべてのデータをプリロードするようにキャッシュを構成して、すべてのアプリケーションが最初から使用できるようにすることができます。 これにより、ロジックのプリロードについて心配する必要がなくなるため、アプリケーションが簡素化されます。
NCache 詳細 NCache ドキュメント キャッシュローダーとリフレッシャードキュメント
キャッシュへの参照データのプリロード
NCache 起動時にキャッシュをプリロードするための非常に強力で柔軟な機能を提供します。 キャッシュローダーのカスタムコードを記述して、に登録することができます NCache。 これが行われると、 NCache キャッシュの起動時に(カスタムコードを使用して)キャッシュローダーを呼び出します。 実装に移る前に、まず、の基本的なコンポーネントについて理解しましょう。 NCache キャッシュスタートアップローダー。
- ローダーサービス: クラスタ化されたトポロジの場合、専用 ローダーサービス 各ノードで実行され、asshttps://wwwに従ってデータをロードします。alachisoft.com / resources / docs /ncache/prog-guide/cache-startup-loader-overview.html#loader-serviceignedデータセット。 これにより、キャッシュプロセスの負担が軽減され、読み込みパフォーマンスが向上します。
- データセット: ロードするデータはに分割されます 論理データセット ユーザーによって作成され、ラウンドロビンアルゴリズムを使用してノードに配布されます。 これにより、並列処理が実現され、ロードプロセスが高速化されます。
深く掘り下げるには NCache プリロード機能、あなたは見ることができます キャッシュローダーのプロパティまた、 NCache また、を提供することにより、ロードされたキャッシュデータの更新を容易にします キャッシュリフレッシャー 特徴。
ICacheLoaderインターフェイスを実装する
を使用してプリロードを有効にするには NCache、という名前のシンプルなインターフェースを実装する必要があります ICacheLoader
。 これは、キャッシュが「どのように、どのデータをロードするか」という質問に答えるのを支援するために呼び出されます。 次のメソッドを簡単にカスタムコーディングする方法は次のとおりです。 ICacheLoader
ビジネス要件に基づいたインターフェース。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
class CacheLoader : ICacheLoader { public void Init(IDictionary<string, string> parameters, string cacheName) { //connect to cache cache = CacheManager.GetCache(cacheName); //Connection string is passed as parameters at the time of configuration // connectionString = parameters.ContainsKey("ConnectionString") ? parameters["ConnectionString"] : null; if (connectionString != null) { //Let's connect to the database connection = new SqlConnection(connectionString); } } public object LoadDatasetOnStartup(string dataSet) { // Create a list of datasets to load at cache startup IList<object> datasetToLoad; if (dataSet != null) { switch (dataSet.ToLower()) { // If dataset is "products", fetch products from data source to load in cache case "products": datasetToLoad = FetchProductsFromDataSource(); // Insert fetched product in the cache // You can also use NCache bulk API to insert data into cache foreach (var product in datasetToLoad) { string key = $"ProductID:{product.Id}"; cache.Insert(key, product); } break; // You can add more cases for different datasets as per requirement and fetch them from the data source default: // Invalid dataset throw new Exception($"Unknown dataset is configured. Dataset {dataSet}"); break; } } return null; } } |
スタートアップローダーの処理中に発生した例外は、アプリケーションに問題を発生させることなくログに記録されます。 シンプルで効果的!
スタートアップローダーを構成する
Cache Startup Loaderを実装したら、次を使用してキャッシュ用に構成できます。 NCache Webマネージャー。 キャッシュの詳細な構成ページからキャッシュローダーを有効にできます。 NCache Webマネージャー。 詳細な手順については、を使用してキャッシュスタートアップローダーを構成する方法を参照できます。 NCache Webマネージャ.
キャッシュローダーを使用して構成されたキャッシュローダーを使用して、データセットをキャッシュに追加および削除することもできます。 Add-StartupLoader
& Remove-StartupLoader
それぞれPowerShellコマンドレット。 に関連する例を見ることができます ローダーデータセットを追加する & スタートアップローダーを削除する よりよく理解するため。
結論!
あなたが見ることができるように、 NCache 分散キャッシュをプリロードし、アプリケーションのパフォーマンスを常に高く保つための強力なメカニズムを提供します。 その上、 NCache また、を提供することにより、ロードされたキャッシュデータの更新を容易にします キャッシュリフレッシャー 特徴。 だから、ダウンロード NCache 今すぐ、その膨大な機能を使用する準備をしてください!
それは実際には素晴らしくて役立つ情報です。 この有益な情報を私たちと共有してくださったことに満足しています。
私たちはこのような通知に滞在してください。 共有していただきありがとうございます。
こんにちは、私はあなたのウェブサイトを見つけました
同等のトピックを検索している間、あなたのウェブサイトはここに来ました
アップ、それは良いようです。 私はそれを私のグーグルブックマークにブックマークしました。
こんにちは、Google経由であなたのブログに注意を向けるようになり、それが本当に有益であることがわかりました。
ブリュッセルに気をつけようと思います。 これを進めていただければ幸いです
将来は。 多くの人がおそらく恩恵を受けるでしょう
あなたの文章から。 乾杯!