绝大部分储备使用 NCache 在 ASP.NET Core 应用程序中

大家好,我是 Sean,今天我将向您展示如何开始使用 NCache 以及 ASP.NET Core。实际上,这是一个非常简单的过程,我们将通过一系列基本步骤来实现。那么,事不宜迟,让我们直接开始吧。

NCache 部署概述

从典型的部署开始 NCache 看起来会是这样的。这代表了典型的部署。应用程序层在顶部,缓存层在中间,数据库层在底部。这也是一种共享部署,您可以将缓存与应用程序一起托管在应用服务器上,但这是更推荐的方法,因为它可以使架构更清晰。

NCache 部署
NCache 部署

环境设置

现在我们已经了解了部署,让我们看看集成需要什么 NCache 从环境设置开始。对于环境设置,我有两个 NCache 服务器已配置好缓存并准备就绪,我现在就向您展示这一点。那么,首先让我向您展示我们将要使用的这个应用程序。这是我们的示例应用程序,我的客户应用程序,您可以在此处看到,如果我打开 Web 管理器,您可以看到此处配置的两个缓存,即托管在 105 和 106 上的数据缓存和参考缓存。因此,这些是我为此演示配置了两个缓存。他们准备出发了。因此,我们实际上可以继续执行实际步骤。

演示缓存
  1. 安装 NCache SDK NuGet 包

    第一步是安装 NCache 应用程序内的 SDK NuGet 包。回到应用程序,如果我管理 NuGet 包,我们会发现我拥有最新版本的 NCache SDK 已安装,因此我可以开始了。

  2. 添加 NCache 命名空间

    因此,我们可以继续下一步,即添加 NCache 应用程序中的命名空间。回来后,我将转到我的客户存储库,在这里我只需继续添加 使用 Alachisoft.NCache。客户。我们可以看到,一旦我添加了这个命名空间,红色波浪线就消失了,这意味着我们需要这个命名空间,我们可以开始了。我只需要保存它。

  3. 添加 NCache 配置

    现在第三步是添加 NCache 配置到 .ncconf 文件。回到应用程序,您会发现我的应用程序中有此客户端和 config.ncconf 文件。此时您可能想知道我们实际上是从哪里获得这些文件的。嗯,这些文件是随 NCache SDK。所以,当您安装 NCache 软件开发套件(SDK) 或添加 NuGet 包,这些文件将被带入您的应用程序中。现在我们知道了它们来自哪里,让我们继续看一下我的 client.ncconf。因此,打开它我们可以看到我有分别托管在 105 和 106 上的“datacache”和“referencecache”的缓存标签。 105和106,我们开始吧。而且,如果我转到配置,我们可以看到我配置了与我的引用缓存相关的“refclientcache”。而且,这是我的 InProc 客户端缓存。现在,我可以详细介绍该产品的优点和功能 NCache 客户端缓存提供了,但有一个完整的专门视频,我建议您去看看。

    <?xml version="1.0" encoding="UTF-8"?><configuration>
        <ncache-server connection-retries="3" retry-connection-delay="0" retry-interval="1" command-retries="3" command-retry-interval="0.1" client-request-timeout="90" connection-timeout="5" port="9800"/>
    	  <cache id="data" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="False" enable-client-logs="False" log-level="error">
    		  <server name="20.200.16.105"/>
    		  <server name="20.200.16.106"/>
    	  </cache>
    	  <cache id="reference" client-cache-id="refclientcache" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
    		  <server name="20.200.16.105"/>
    		  <server name="20.200.16.106"/>
    	  </cache>
    </configuration>
  4. 将基本操作实现到现有方法中

    无论如何,既然我们已经完成了这项工作,让我们继续进行下一步,即将我们的基本操作实现到我们现有的方法中。因此,我在这里有我的客户存储库类,并且我在这里定义了我的缓存方法。

    //Constructor With Caching
    public CustomerRepository(string connectionString, string data_cache, string ref_cache) {
        _connectionString = connectionString;
        if (_data_cache == null) {
            _data_cache = CacheManager.GetCache(data_cache);
            Console.WriteLine($ "Connected to {data_cache}");
        }
        if (ref_cache == null) {
            _ref_cache = CacheManager.GetCache(ref_cache);
            Console.WriteLine($ "Connected to {ref_cache}");
        }
    }

    因此,如果我们要开始实际获取缓存句柄,我们将使用 CacheManager.GetCache 来获取我的 data_cache 和 _ref_cache。因此,您可以看到我们正在连接到此应用程序中的数据和引用缓存。

    接下来,我们将使用 _data_cache.Get 通过 ID 获取客户

    public Customer GetCustomerById(string id) {
        Customer customer = null;
        if (_data_cache != null) {
            customer = _data_cache.Get <Customer> ($ "Customer:{id}");
            if (customer != null) {
                return customer;
            }
        }
        if (_ref_cache != null) {
            customer = _ref_cache.Get <Customer> ($ "Customer:{id}");
            if (customer != null) {
                return customer;
            }
        }
        //Fetch customer from DB
    	...
    
        //Add customer to reference cache
        _ref_cache.Add($ "Customer:{customer.CustomerID}", customer);
        customerKeys.Add($ "Customer:{customer.CustomerID}");
        return customer;
    }

    现在,下一个方法实际上是将我们的客户添加到缓存中,我们将其添加到我们的 _data_cache 中,因此,我们说 _data_cache。添加此客户键以及将添加该键值的客户然后配对到我们的缓存中。

    if (_data_cache != null) {
        if (_data_cache.Get <Customer> ($ "Customer:{customer.CustomerID}") == null) {
            Console.WriteLine($ "Adding customer {customer.CustomerID} in data cache");
            _data_cache.Add($ "Customer:{customer.CustomerID}", customer);
            customerKeys.Add($ "Customer:{customer.CustomerID}");
        } else {
            Console.WriteLine($ "Customer {customer.CustomerID} already exists in data cache.");
        }
    }

    并且,我以同样的方式定义了所有其他方法。所以,这很好。

  5. 部署应用程序

    最后一步是实际部署我们的应用程序,我们将通过两种方式来实现。

    1. 使用 NuGet 进行部署

      我们部署此应用程序的第一种方法是仅使用 NuGet 包来部署它,这是我们迄今为止配置它的方式。让我们看看我们将如何做到这一点。

      因此,我有一个配置了该应用程序的 Web 服务器,该应用程序已部署在那里,这就是我的 104 盒子。因此,转到我的 104 框,您可以看到这里有我的 NuGet 站点。我将继续浏览此内容或探索此内容,我们可以看到我有我的 client.ncconf。打开此文件可以看到“datacache”和“referencecache”标签分别指向 105 和 106。所以,这看起来是正确的。

      转到 config.ncconf,我们可以在这里看到我的“refclientcache”,它指向我的“ReferenceCache”,这意味着即使这样看起来也不错。因此,所有这些看起来都不错,这个应用程序已经部署了。现在让我们来看看这个应用程序。所以,去104就好了。因此,您可以看到我部署了这个 NuGet Only CustomerApp。现在,让我们添加一个客户。所以,现在在这里添加一个客户,您可以看到我们的客户已经增加到 92 个。所以,我们在这个应用程序中做了一些事情。

      现在,让我们看看我们的集群缓存针对此应用程序显示的内容。因此,我还将在此处打开引用缓存监视器,我们应该在引用缓存中看到 91 个客户,因为这是我们首次加载时的客户数量,实际上我们看到的是 91,40 + 51,所以是 91。而且,在数据缓存中,我们应该看到 1 个客户,事实上我们确实看到了,这是我们刚刚添加的客户。

      NCache 显示器

      现在,让我们继续删除这个客户。所以我要查找这个客户,然后删除它。好了,我们删除了它。现在回到有 91 个客户的数据缓存,我们可以看到客户数量从 1 变为了 XNUMX。所以,这个应用程序正在运行,这是部署此应用程序的一种方法。

    2. 使用远程客户端进行部署

      因此,现在部署此应用程序的另一种方法是使用 NCache 远程客户端。我们来看看它是如何工作的。我为此设置了另一台服务器,也就是我的 103 服务器。现在我带你到那里,这里存储着我的应用程序的基于配置的版本。我把它命名为基于配置的版本,因为我们实际上将使用来自……的配置。 NCache 我们将给予这个盒子管理。因此,正如您所看到的,我的应用程序中没有 client 或 config.ncconf 文件。那么,这意味着这个应用程序不应该工作,对吗?好吧,实际上如果我运行一个 得到-NCache版本 在 PowerShell 中可以看到,我已经在这台机器上安装了企业远程客户端。

      因此,让我们继续使用以下命令将此机器作为客户端节点添加到我们的集群缓存中: NCache 管理中心。因此,回到我的经理处,我将单击“查看引用缓存的详细信息”,如果向下滚动,我们可以看到 103 已添加,并配置了一个客户端缓存,该缓存配置为 ReferenceClientCache,并且它是一个 OutProc 客户端缓存这是我可以配置的东西 NCache 远程客户端。查看我的数据缓存,可以看到端口 103 也被配置为客户端。

      NCache 远程客户端配置

      所以,回到103我们可以进入 NCache 安装目录,并在我们的配置文件中查看这些配置。因此,如果我进入程序文件 > NCache > config 和 client.ncconf 我们可以看到这里有我的数据缓存标签和我的参考缓存标签。在我的 config.ncconf 中,我们可以看到指向引用缓存的引用客户端缓存标记。所以,这里一切看起来都很好。

      <?xml version="1.0" encoding="UTF-8"?>
        <configuration>
          <ncache-server connection-retries="3" retry-connection-delay="0" retry-interval="1" command-retries="3" command-retry-interval="0.1" client-request-timeout="90" connection-timeout="5" port="9800"/>
      	  <cache id="data" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="False" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.105"/>
      		  <server name="20.200.16.106"/>
      	  </cache>
      	  <cache id="reference" client-cache-id="refclientcache" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.105"/>
      		  <server name="20.200.16.106"/>
      	  </cache>
      	  <cache id="refclientcache" client-cache-id="" client-cache-syncmode="optimistic" skip-client-cache-if-unavailable="True" reconnect-client-cache-interval="10" default-readthru-provider="" default-writethru-provider="" load-balance="True" enable-client-logs="False" log-level="error">
      		  <server name="20.200.16.103"/>
      	  </cache>
        </configuration>

      而且,我已经部署了此应用程序,所以,现在我要关闭这里,然后在浏览器中打开此网站。因此,在浏览器中,我在此选项卡中打开它,我们可以看到顶部的 103 和这里的 91 个客户。所以,此应用程序已在运行,现在让我们继续从这里添加客户。因此,再次添加该客户,让我们返回到我们的数据缓存,然后就可以了。您可以看到该客户已再次添加到缓存中,并且我们在那里看到活动。这是部署此应用程序的另一种方式。

而且,这几乎总结了您可以工作和使用的两种方式 NCache 在 ASP.NET Core 中,并将其集成到您现有的 ASP.NET Core 应用程序中。

下一步

如果你想自己尝试一下,你可以 下载 30 天免费试用版 of NCache 从我们的网站下载企业版和专业版,即可获得功能齐全的产品进行试用。这样,您就可以体验产品的全部功能。 NCache 没有任何限制。现在让我带你去那里。所以,如果我去 alachisoft.com,然后我去下载页面,你会看到你有这些下载选项 NCache 从这里。您还可以尝试 NCache 兒童遊樂區 它为您提供了沙盒会话和预定义的示例供您使用,您可以通过单击此处的“尝试游乐场”按钮来实现。最后您可以安排个性化的 NCache 演示,我们将为您提供 1 小时的技术转储以进行映射 NCache 到您的用例。您可以从资源 > 安排演示 然后您可以填写此表格并将其发送给我们,我们会立即为您安排演示。

好了,本次演示就到此结束了。非常感谢您的观看,希望您的 ASP.NET Core 应用程序能够顺利运行。 NCache 看完这个视频后。非常感谢您的观看,现在保重,再见。

接下来做什么?

联系我们

联系电话

+1 214-619-2601 (美国)

+44 20 7993 8327 (英国)

©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。