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

时间:2018-08-20 14:38:50

标签: c# caching ncache

我正在处理一项要求,以缓存一些可重复使用的数据库值。但是我希望缓存可以供同一服务器中的所有处理器访问。

概述:

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

处理器将是多个Windows服务,我希望它们共享相同的缓存。 如何使用Ncache来实现。我对使用它非常陌生。因此,非常感谢任何链接或指示。

1 个答案:

答案 0 :(得分:1)

NCache的最大价值在于可以用作OutProc分布式内存中缓存,该缓存位于NCache进程本身内;这不同于InProc缓存,在缓存中,访问仅限于单个进程。

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

有关OutProcInProc缓存的更多信息,请参考http://www.alachisoft.com/resources/docs/ncache/admin-guide/local-cache.html

一旦安装了NCache服务器,就可以通过修改默认情况下位于config.ncconf的{​​{1}}文件来创建缓存配置。

C:\Program Files\NCache\config

以上配置将在本地服务器上创建<?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> 缓存(请参见OutProc)。如果需要,可以将其配置为集群环境中的各种镜像,分区或复制缓存(请参考http://www.alachisoft.com/resources/docs/ncache/admin-guide/cache-topologies.html)。

然后,您可以启动cache-topology服务,并从您的应用程序内部连接至该服务,并在上述配置中初始化与命名缓存实例的连接。

NCache

您还可以通过向上述Cache outProcCache = NCache.InitializeCache("MyOutProcCacheName"); 方法发送配置参数,来完全在代码中而不是NCache文件中配置与client.ncconf服务器/服务的连接。

InitializeCache