C# 同一服务器中多个处理器共享的Ncache

C# 同一服务器中多个处理器共享的Ncache,c#,caching,ncache,C#,Caching,Ncache,我正在研究缓存一些可以重用的数据库值的需求。但我希望同一服务器中的所有处理器都可以访问缓存 概述: 因此,基本上,将有多个处理器从API获取工作并将记录处理到数据库。其中一些数据库值将被缓存 处理器将是多个windows服务,我希望它们共享同一个缓存。 如何使用Ncache实现这一点。我对使用这一点非常陌生。因此,任何链接或方向都非常受欢迎。对于NCache来说,最大的价值是可以用作输出程序分布式内存缓存,缓存位于NCache进程本身内;这与InProc缓存不同,后者的访问仅限于单个进程 您需要

我正在研究缓存一些可以重用的数据库值的需求。但我希望同一服务器中的所有处理器都可以访问缓存

概述:

因此,基本上,将有多个处理器从API获取工作并将记录处理到数据库。其中一些数据库值将被缓存

处理器将是多个windows服务,我希望它们共享同一个缓存。
如何使用Ncache实现这一点。我对使用这一点非常陌生。因此,任何链接或方向都非常受欢迎。

对于NCache来说,最大的价值是可以用作
输出程序
分布式内存缓存,缓存位于NCache进程本身内;这与
InProc
缓存不同,后者的访问仅限于单个进程

您需要配置一个
OutProc
缓存,该缓存运行在单独的专用缓存服务器(或集群)上,或与您的服务运行在同一服务器上

有关
OutProc
InProc
缓存的更多信息,请参阅

安装NCache服务器后,可以通过修改默认位于
C:\Program Files\NCache\config
config.ncconf
文件来创建缓存配置

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
    <cache-config cache-name="MyOutProcCacheName">
    <cache-settings inproc="False">
      <logging enable-logs="True" trace-errors="True" trace-debug="False" log-path=""/>
      <performance-counters enable-counters="True" snmp-port="0"/>
      <cache-notifications item-remove="False" item-add="False" item-update="False"/>
      <cleanup interval="15sec"/>
      <storage type="heap" cache-size="2024mb"/>
      <eviction-policy default-priority="normal" eviction-ratio="5%"/>
      <cache-topology topology="local-cache"/>
      <client-death-detection enable="False" grace-interval="60sec"/>
    </cache-settings>
  </cache-config>
 </configuration>
您还可以通过将配置参数发送到上面的
InitializeCache
方法,在代码中完全配置到
NCache
服务器/服务的连接,而不是
client.ncconf
文件

CacheInitParams connectionParams = new CacheInitParams();
connectionParams.ServerList = new CacheServerInfo[]{ new CacheServerInfo("ncacheIp", ncachePort) };

Cache outProcCache = NCache.InitializeCache("MyOutProcCacheName", connectionParams);
CacheInitParams connectionParams = new CacheInitParams();
connectionParams.ServerList = new CacheServerInfo[]{ new CacheServerInfo("ncacheIp", ncachePort) };

Cache outProcCache = NCache.InitializeCache("MyOutProcCacheName", connectionParams);