はじめに NCache オープンソース
NCache オープンソースは、.NET アプリケーションにインメモリ キャッシュ機能を提供します。このガイドでは、ローカル キャッシュまたはレプリケート キャッシュの設定、クラスタ構成の検証、および統合の基本的な手順について説明します。 NCache .NET アプリケーションを使用します。
ステップ1:インストール NCache
あなたがインストールすることができます NCache ダウンロードしてマシンにインストールするか、 デッカー.
ダウンロードとインストール
あなたがダウンロードすることができます NCache ソフトウェアセクションから NCache ダウンロード ページで見やすくするために変数を解析したりすることができます。
これによりユーザー登録ページに移動しますので、そこで新規ユーザーとして登録する必要があります。
「登録とダウンロード」をクリックすると、ソフトウェア評価契約ページが表示されますので、内容をよく読んで「ライセンス契約に同意します」をクリックしてください。
表示されたページにあるダウンロードボタンをクリックしてください。
結果を配置する 。MSI フォルダ内のファイル
C:例えば、ドライブ、"C:\NCache".コマンドプロンプトインスタンスを開くには、 管理者として実行 オプションを選択します。
次のコマンドを入力して実行します。 NCache セットアップウィザードが表示されます。「次へ」をクリックしてください。
msiexec /I "<Setup Path>\ncache.oss.x64.msi"
次の画面で、ライセンス契約に同意してから続行してください。その後、 インストールキー により提供さ Alachisoft、サインアップ時に送信したユーザー情報も併せて送信されます。
「インストール」をクリックしてセットアップを完了してください。
インストール手順の詳細については、 NCache Windows インストール ガイド.
Dockerイメージを取得してコンテナを作成する
NCache また、実行可能なDockerイメージも提供しています。 NCache コンテナ化された環境で、手動インストールなしで動作します。
- ことを確認してください デッカー お使いのコンピューターにインストールされています。
- Dockerのインストールを確認するには、以下を実行してください。
docker version
- 引っ張る NCache Dockerイメージ from Dockerハブ:
docker pull alachisoft/ncache:latest-oss
重要
本番環境では、特定のバージョン タグ (例: alachisoft/ncache:x.x.x-oss) の代わりに latest. 最新は常に最新のイメージを取得するため、既存のセットアップに影響する可能性があります。
- ホストネットワークを使用してDockerコンテナを作成します。
docker create --name ncache --network host alachisoft/ncache:latest-oss
お願い
- コンテナ名
ncache任意の名前に置き換えることができます。 - ホストネットワーク is 推奨される の NCache 適切なクラスタ通信を確保し、ポートマッピングの問題を回避するため。
- Dockerコンテナを起動します。
docker start ncache
コンテナが起動したら、ステップ2に進んで登録してください。 NCacheプロセスの詳細については、以下を参照してください。 Dockerインストールガイド.
ステップ2:登録 NCache (Dockerのみ対応)
使用時 NCache Dockerを使用する場合、コンテナを使用する前に登録する必要があります。WindowsおよびLinuxへのインストールでは、登録はインストール時に自動的に行われます。
あなたは登録することができます NCache 次のいずれかとして:
- キャッシュサーバー (デフォルト)
- 開発/QAサーバー (無料評価)
お願い
- If
registeras指定がない場合、コンテナはデフォルトでキャッシュサーバーとして登録されます。 - 登録は、コンテナ内またはホストマシンから直接行うことができます。
- 登録するために NCache キャッシュサーバーとして動作させるには、ホスト端末から以下のコマンドを実行します。
docker exec -it ncache /opt/ncache/bin/tools/register-ncacheevaluation -key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -registeras CacheServer
置き換える -key 独自の評価キーで価値を評価してください。
詳細については、 NCache Dockerガイド.
ステップ3:キャッシュを作成する
必要なキャッシュ構成を config.ncconf キャッシュサーバー上のファイル。
警告
- NCache オープンソース サポートのみ コミュニティ (NAIST) と 複製されたキャッシュ.
- デフォルトでは、累積キャッシュサイズは 4 GB in NCache オープンソース。キャッシュごとのサイズ制限はありませんが、合計使用量は4GBを超えてはなりません。
店は開いています %NCHOME%\ config \ config.ncconf ローカルマシン上のファイル。
全体をコピーして貼り付けます
<cache-config>以下の例から<configuration>のセクション config.ncconf (キャッシュ構成) ファイル。
お願い
すべて NCache 構成ファイル (.ncconf) 任意のテキストエディタ(メモ帳、Notepad++など)で開くことができます。
- 必要に応じて、この設定を変更してキャッシュ名を変更できます。
重要
各キャッシュには一意の名前を付ける必要があります。
以下は、ローカル キャッシュとレプリケート キャッシュの両方の構成例です。
ローカルキャッシュの場合
NCache オープンソース版は、単一ノード上に存在するスタンドアロン(非クラスタ型)キャッシュをサポートしています。
<cache-config cache-name="demoLocalCache" alias="" config-id="e097c2c0-88af-4aa2-8a8a-c6432eeaa3fe" config-version="0" store-type="distributed-cache">
<cache-settings inproc="False" data-format="Serialized" serialization="Json">
<logging enable-logs="True" trace-errors="True" trace-debug="False" log-path=""/>
<performance-counters enable-counters="True" snmp-port="0"/>
<cleanup interval="15sec"/>
<storage type="heap" cache-size="1024mb"/>
<eviction-policy enabled-eviction="True" default-priority="normal" policy="priority" eviction-ratio="5%"/>
<cache-topology topology="local-cache"/>
<client-death-detection enable="False" grace-interval="60sec"/>
</cache-settings>
</cache-config>
複製キャッシュの場合
キャッシュクラスタとは、相互接続されたサーバーノードの集合体であり、外部からは単一のキャッシュユニットのように動作するサーバー群を形成する。
警告
『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する NCache オープンソース、複製キャッシュは最大で 3ノード.
既存の1ノードのレプリケートキャッシュクラスタに新しいサーバーノードを追加するには、以下の手順に従ってください。
Video Cloud Studioで config.ncconf ノード1上のファイル(管理者権限付き)。
<cache-deployment>キャッシュのセクション名 デモキャッシュ各キャッシュサーバーを別々に追加します<server-node>エントリ。以下の例では、既存のサーバーはIPアドレスを持つnode-1です。20.200.20.40追加される新しいサーバーは、IPアドレスを持つnode-2です。20.200.20.39:
<cache-config cache-name="demoCache" alias="" config-id="44fb997a-f6a7-433b-9439-7ef9de9f47c7" config-version="0" store-type="distributed-cache">
<cache-settings inproc="False" data-format="Serialized" serialization="Json">
<logging enable-logs="True" trace-errors="True" trace-debug="False" log-path=""/>
<performance-counters enable-counters="True" snmp-port="0"/>
<cleanup interval="15sec"/>
<storage type="heap" cache-size="1024mb"/>
<eviction-policy enabled-eviction="True" default-priority="normal" policy="priority" eviction-ratio="5%"/>
<cache-topology topology="replicated">
<cluster-settings operation-timeout="60sec" stats-repl-interval="300sec">
<cluster-connection-settings port-range="1" connection-retries="1" connection-retry-interval="2secs" cluster-port="7801"/>
</cluster-settings>
</cache-topology>
<client-death-detection enable="False" grace-interval="60sec"/>
</cache-settings>
<cache-deployment deployment-version="0">
<servers>
<server-node ip="20.200.20.40"/>
<server-node ip="20.200.20.39"/>
</servers>
</cache-deployment>
</cache-config>
指定されたIPアドレスを <cache-deployment> キャッシュサーバーのIPアドレスを記載したセクション。
更新を保存 config.ncconf ノード1上のファイル。
更新されたファイルをコピーしてください
<cache-deployment>ノード1からブロック config.ncconf ノード2上のファイル。再起動する NCache ノード2上のサービス。
Restart-Service -Name NCacheSvcForce Stop (NAIST) と start クラスター内の両方のノードにあるキャッシュ。
次の PowerShell コマンドレットを実行して、ノードが正常に追加されたことを確認してください。
Get-Caches -Detailコマンドが正常に実行されると、新しく追加されたノードがキャッシュクラスタの詳細に表示されます。

以下の点に注意してください:
- クラスター化されたキャッシュの場合、マシン上でテストする場合は単一のサーバーを使用できます。
- 各キャッシュクラスタには固有の
cluster-portそうしないと、ポートの競合によりキャッシュの起動に失敗します。ただし、同じクラスタのすべてのノードは同じ<cluster-port>または、キャッシュ ノードが参加してクラスターを形成できない可能性があります。 - この構成をすべてのキャッシュ サーバーにコピーする必要があります。
既存の 2 ノードのレプリケート キャッシュ クラスターにノードを追加する方法については、以下を参照してください。 キャッシュサーバーノードの追加レプリケートキャッシュクラスタからノードを削除するには、以下を参照してください。 キャッシュサーバーノードの削除.
ステップ4:ローカル/リモートクライアントを追加する
ローカル/リモートクライアントとは、キャッシュに接続するWebサーバーまたはアプリケーションサーバーのことで、同じマシン上(ローカル)または別のマシン上(リモート)のいずれかになります。キャッシュには、1つ以上のクライアントノードを追加できます。Webサーバーまたはアプリケーションサーバーをキャッシュクライアントとして構成するには、以下の手順を参照してください。
全体をコピーして貼り付けます
<cache>以下の例から<configuration>のセクション client.ncconf (クライアント構成) ファイル。<cache id="demoCache" client-cache-id="" load-balance="false" enable-client-logs="False" log-level="error"> <server name="20.200.20.40"/> </cache>検索エンジンに認識されるよう、
cache idは、 client.ncconf ファイルにソフトウェアを指定する必要があります。のnameプロパティで指定されたIPアドレスを置き換えます
<server>サーバーのIPアドレスにタグを付けます。キャッシュサーバーのIPアドレスはすべて、ここで個別に記述してください。<server>タグ。すべてのキャッシュ クライアントに対して上記の手順を実行してください。
ステップ5: キャッシュを再起動して NCache サービス
設定の変更を有効にするには、キャッシュインスタンスと NCache サービス(NCacheSvc)。サービスを再起動するのに十分な権限があることを確認してください。ユーザーが管理者でない場合は、PowerShellを管理者権限で実行してください。 管理者それ以外の場合は、「開けません」というエラーメッセージが表示される場合があります。 NCacheコンピュータ上の SVC サービス。"
PowerShellで次のコマンドを実行して再起動します。 NCache サービス:
Restart-Service -Name NCacheSvc
警告
その NCache 構成ファイルにタグが欠落しているか、タグ構文が正しくない場合、サービスは起動に失敗します。
再起動後、次の点を確認してください。
- その NCache サービス(NCacheSvc) が実行されています。
- キャッシュ インスタンスのステータスは「実行中」と表示されます。
サービスとキャッシュの両方が正常に開始されたことを確認してから続行してください。
ステップ6: クラスターをテストする
この手順では、キャッシュが正常に作成されたことを確認し、すべてのノードでキャッシュを起動し、クラスタが正しく機能していることを確認するためにテストを実行します。これにより、キャッシュが適切に構成され、クライアント操作を処理する準備ができていることを確認できます。
キャッシュの作成を確認する
キャッシュが正常に作成されたことを確認するには、PowerShell を開いて、 Get キャッシュ コマンドレット(付属 NCache) とともに -Detail サーバー上のすべての登録済みキャッシュとキャッシュ クラスターの各ノードを追加情報とともに表示するパラメーター。
Get-Caches -Detail -Server 20.200.20.40
たとえば、 デモキャッシュ 作成されたリストには デモキャッシュ ノードとステータス「停止」のリストが表示されます。リストにキャッシュが表示されない場合は、構成の変更中に何らかのミスがあったか、 NCache サービスが再開されていない可能性があります。
重要
キャッシュがリモートノードで停止した場合、そのノードは出力に表示されないことに注意してください。 Get-Caches -Detail.
お願い
PowerShellコマンドレットがサポートされているかどうかは、 NCache オープンソース エディションの比較 ページで見やすくするために変数を解析したりすることができます。
キャッシュを開始
キャッシュの作成が検証されたら、PowerShellを使用して各サーバーでキャッシュを開始します。 開始キャッシュ コマンドレット。
Start-Cache -Name demoCache -Server 20.200.20.40
重要
この手順をすべてのキャッシュサーバーノードで繰り返します。 -Server パラメータが指定されていない場合、コマンドレットはデフォルトでローカルマシンのIPアドレスを使用します。 -Server リモート サーバーでキャッシュを開始するときのパラメーター。
PowerShellを使用してキャッシュを停止する方法については、 ストップキャッシュ コマンドレットのドキュメント。
テストストレス
クラスターをテストするには、 テストストレス 使用方法をシミュレートする PowerShell コマンドレット:
重要
必ず交換してください -CacheName 作成したキャッシュの名前を入力します。
Test-Stress -CacheName demoCache
ステップ7: クラスターの状態を監視する
ローカルキャッシュとクラスター化キャッシュの両方が、Windowsパフォーマンスカウンターを使用してパフォーマンス統計を公開します。 NCache また、クライアントの観点からキャッシュのパフォーマンス統計も公開します。この手順では、前の手順で実行したストレス テスト ツールがキャッシュ呼び出しを正常に実行していることを確認します。
PerfMonを使用した監視
実行中のキャッシュの統計情報を表示するには、Windowsの検索バーに「PerfMon」と入力します。
検索結果にパフォーマンスモニターが表示されます。パフォーマンスモニターを開いてください。
左側のペインにある「監視ツール」の下の「パフォーマンスモニター」をクリックします。右側のペインにパフォーマンスモニターウィンドウが開きます。
「追加(+)」ボタンをクリックしてください。すると、「カウンターの追加」ポップアップウィンドウが開きます。
デフォルトでは、ローカルシステムのパフォーマンスカウンタカテゴリが表示されます。キャッシュが別のコンピュータで実行されている場合は、コンピュータ名またはIPアドレスの前に「」を付けて入力してください。 「\\」例: \\20.200.20.40 または \\TEST。
パフォーマンスカテゴリウィンドウでスクロールして、見つけて選択する NCache.
しかし NCache 多くの統計を公開しているため、次の基本的なカウンターを選択してキャッシュを監視できます。
追加/秒: 1 秒あたりに追加される新しいキャッシュ項目の数を示します。
数量カウントこれはキャッシュ内に存在するアイテムの数を示しています。
有効期限/秒: 1 秒あたりに期限切れになったアイテムの数が表示されます。
フェッチ/秒: アプリケーションがキャッシュから読み取ったキャッシュ項目の数が表示されます。
リクエスト/秒: これは、すべてのクライアントからこのキャッシュ サーバーに受信されたリクエスト (つまり、追加、取得、挿入、削除などのキャッシュ コマンド) の数を示します。
更新/秒これは、1秒あたりに更新される既存のキャッシュアイテムの数を示しています。
各キャッシュは、それぞれのキャッシュ名の下に統計情報を公開します。監視したいキャッシュを選択し、下部にある「追加」ボタンをクリックしてください。
[OK]をクリックします。
グラフの種類を「折れ線グラフ」から「レポートグラフ」に変更します。

SNMPを使用した監視
NCache また、集中管理されたMIBファイルを使用してSNMP(簡易ネットワーク管理プロトコル)による監視も可能です。
- NCache 監視に必要なすべてのカウンターを含む単一のalachisoft.mibファイルを提供します。
- このファイルは以下の場所にあります。
- Windows:
%NCHOME%\bin\resources - Linux:
/opt/ncache/ext/resources/snmp/
- Windows:
- MIBファイルには以下のカウンターが含まれています。
- キャッシュ
- ブリッジ
- ブリッジキャッシュ
- 永続キャッシュ
- クライアントカウンター
- SNMPツールを使用します。 MIBブラウザ MIBファイルを読み込んで参照する。

- 必要な属性を選択し、その値を表示します。 SNMPテーブル.

ステップ8:.NETクライアントのセットアップ
キャッシュに接続するアプリケーションを作成するには、次の手順に従います。
新しい.NETコンソールアプリケーションを作成します。
NuGet パッケージをインストールするには、Visual Studio を開き、[ツール] -> [NuGet パッケージ マネージャー] -> [パッケージ マネージャー コンソール] の順に選択します。
インストール NCache NuGetパッケージ パッケージ マネージャー コンソールから次のように実行します。
Install-Package Alachisoft.NCache.OpenSource.SDK
これにより設定ファイルが生成されます client.ncconf (NAIST) と config.ncconf そして、それらを現在のプロジェクトに追加します。
お願い
これらのファイルが 行方不明 or 削除されたそれらは、以下のコマンドを実行することで生成できます。 init.ps1 パッケージ マネージャー コンソール.
ステップ9:コーディングサンプル
このステップでは、シンプルな .NET アプリケーションを作成し、基本的なキャッシュ操作を実行します。 NCache API。これにより、アプリケーションがキャッシュに正常に接続し、データを保存できることを検証できます。
データキャッシング
キャッシュに接続したら、アプリケーションデータをキーと値のペアとして追加できるようになります。次の例は、キャッシュに接続してオブジェクトを追加する方法を示しています。
using Alachisoft.NCache.Client;
// Connect to cache
ICache cache = CacheManager.GetCache("demoCache");
// Create item
var product = new Product(1005, "Laptop", 1500, "Electronics");
var cacheItem = new CacheItem(product);
// Add to cache
cache.Add("1009", cacheItem);
Console.WriteLine("Item 1009 successfully added to demoCache.");
// Dispose cache
cache.Dispose();
[Serializable]
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }
public string Category { get; set; }
public Product(int id, string name, double price, string category)
{
Id = id;
Name = name;
Price = price;
Category = category;
}
}
データキャッシュの詳細については、以下を参照してください。 NCache ガイド.
イベント
NCache 特定のキャッシュ項目が変更されたときに、アプリケーションが通知を受け取ることができるようにします。 アイテムレベルのイベント 特定のキーを監視し、そのアイテムがキャッシュから更新または削除されたときに応答したい場合に役立ちます。
次の例は、特定のアイテムに対してアイテムレベルの通知を登録し、ItemUpdated イベントを処理する方法を示しています。
...
using Alachisoft.NCache.Runtime.Events;
// Connect to cache
using ICache cache = CacheManager.GetCache("demoCache");
// Add an item first, because the key must already exist
var product = new Product(1005, "Laptop", 1500, "Electronics");
string key = "Product:1005";
cache.Add(key, new CacheItem(product));
// Create callback
var dataNotificationCallback = new CacheDataNotificationCallback(OnCacheDataModification);
// Register item-level notifications for update operation
cache.MessagingService.RegisterCacheNotification(key, dataNotificationCallback, EventType.ItemUpdated, EventDataFilter.DataWithMetadata);
// Update item to trigger ItemUpdated event
product.Price = 1750;
cache.Insert(key, new CacheItem(product));
Console.WriteLine("Item-level event notifications registered successfully.");
// Callback method that is invoked when a registered cache item is modified
static void OnCacheDataModification(string key, CacheEventArg args)
{
switch (args.EventType)
{
case EventType.ItemUpdated:
Console.WriteLine($"Item with key '{key}' has been updated in cache '{args.CacheName}'.");
if (args.Item != null)
{
Product updatedProduct = args.Item.GetValue<Product>();
Console.WriteLine($"Updated product: {updatedProduct.Name}, Price: {updatedProduct.Price}");
}
break;
}
}
...
イベントの詳細については、以下を参照してください。 NCache ガイド.
どのような機能が利用できるか確認できます NCache オープンソース エディションの比較.
重要
アプリケーションを実行した後、またはキャッシュ操作を実行した後、 NCache 監視とトラブルシューティングに使用できるログファイルを生成します。デフォルトでは、ログファイルは次の場所に生成されます。 %NCHOME%\log-filesログファイルの場所は、インストール時にカスタムディレクトリを選択した場合には異なる場合があります。 NCache セットアップ。
お願い
詳しいご利用方法については NCache、を参照してください 開発者の ガイド。