缓存管理对缓存的操作
此 NCache Management API 是一组可编程方法调用,使用户能够在 OutProc 缓存上执行基本管理操作,而无需使用 NCache 管理中心或命令行工具。该管理 API 在执行请求时通常是自给自足的。
硬件需求
- 安装 Alachisoft.NCache.SDK NuGet 包。
- 在您的应用程序中包含以下命名空间:
- 有关 API 详细信息,请参阅: 缓存管理器, 缓存连接选项, CacheClientConnectivityChangedCallback, 客户信息, 已连接客户端列表, 获取缓存, 缓存, 通知服务, 缓存客户端连接已更改.
监控连接到缓存的客户端
NCache 允许您启用客户端活动事件,以便在集群缓存中其他客户端的连接和断开连接时通知客户端。每个客户端还可以定义一个自定义的进程级标识符,该标识符会在客户端连接或断开与缓存的连接时共享给订阅者。客户端活动事件会在客户端连接或断开与指定缓存的连接时触发。这些事件会针对特定缓存进行注册,并通过用户定义的回调方法进行处理。
注意:
确保客户端事件已经 通过以下方式实现 NCache 管理中心 在继续使用它们之前。
连接到缓存
此 AppName 是进程级唯一标识符,可以在缓存连接时分配。 为此,在连接到缓存之前,创建一个实例 CacheConnectionOptions 并为其分配一个自定义标识符字符串 AppName 属性。因此,如果此客户端连接或断开连接,则订阅该客户端的所有客户端的回调都将获得此 AppName 在他们的 ClientInfo 实例。
// Create an instance of CacheConnectionOptions
var options = new CacheConnectionOptions();
// Assign the custom identifier
options.AppName = "MyApp";
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
创建事件回调方法
回调方法是用户定义的,并且在客户端与缓存连接/断开连接时调用。 该方法是针对 CacheClientConnectivityChanged 的事件属性 CacheClientConnectivityChangedCallback 输入特定的缓存。 因此,创建的方法应该与委托的签名相匹配:
public delegate void CacheClientConnectivityChangedCallback(string cacheId, ClientInfo client);
创建的方法包含以下参数:
// User defined event callback method
static void MyClientConnectivityCallback(string cacheName, ClientInfo clientInfo)
{
// Handle event
}
| 参数 | 描述 |
|---|---|
cacheName |
与客户端连接或断开连接的缓存的名称。 这充当事件的发送者。 |
clientInfo |
ClientInfo 类的一个对象,其中包含有关导致事件触发的客户端的信息。 |
客户信息类
| 会员 | 描述 |
|---|---|
AppName |
用户分配的、进程级别的唯一标识符。 |
ClientID |
客户端的唯一 ID。 |
IPAddress |
客户端连接的IP。 |
MacAddress |
客户端的MAC地址。 |
PhysicalCores |
客户端的可用物理内核。 |
LogicalCores |
客户端的可用逻辑核心。 |
ProcessID |
客户端的进程 ID。 |
MachineName |
客户端的机器名称。 |
Status |
缓存客户端的连接状态。 |
ClientVersion |
缓存客户端的版本。 |
IsDotNetCore |
用于检查客户端是否为 .NET Core 的标志。 |
Memory |
客户端的可用内存。 |
Operating System |
客户端使用的操作系统。 |
注册事件
该方法是通过将其附加到 CacheClientConnectivityChanged 属性作为事件回调。 这使客户端能够侦听其他客户端的连接/断开连接事件。 如果另一个客户端连接到指定的缓存或从指定的缓存断开连接,则调用回调方法。
cache.MessagingService.CacheClientConnectivityChanged += MyClientConnectivityCallback;
监控已连接客户端的客户端信息
此 ClientInfo 每个连接的客户端都可以在本地以以下形式获得 cache.ClientInfo 属性。
查看已连接客户端列表
要按需获取连接到缓存的所有客户端的信息,请使用 ConnectedClientList 缓存上的属性为:
// Connect to cache with custom AppName property
ICache cache = CacheManager.GetCache(cacheName, options);
// Get list of all connected clients
IList<ClientInfo> connectedClients = cache.ConnectedClientList;
foreach(ClientInfo clientInfo in connectedClients)
{
Console.WriteLine($"Client ID : {clientInfo.ClientID}");
}