• Facebook
  • Twitter(现为X)
  • Youtube
  • 内衬
  • RSS
  • 文档
  • 比较
  • 博客
  • 下载
  • 联系我们
下载
显示/隐藏目录

在 ASP.NET Core 中使用 IDistributedCache

运用 IDistributedCache 在 ASP.NET Core 中 NCache 通过允许在多个应用服务器之间共享缓存数据,提高应用程序的可扩展性和效率。通过实施 ID分布式缓存界面 NCache这样一来,在多个应用服务器上实现高性能缓存和数据完整性就成为可能。

硬件需求

使用本产品前,请确保满足以下先决条件:

  • 。NET
  • 根据您的应用程序在您的应用程序中安装以下 NuGet 包 NCache 版:
    • 企业版: NCache.Microsoft.Extensions.Caching
    • 开源: NCache.Microsoft.Extensions.Caching.OpenSource
  • 缓存必须正在运行。
  • 申请必须是 连接到缓存 在执行操作之前。
  • 有关 API 详细信息,请参阅: 尝试获取值, 米, 添加NCache分布式缓存.
  • 确保要添加的数据是 可序列化.

如何配置 NCache 作为分布式缓存提供程序

使用 NCache 通过 IDistributedCache API中,您需要添加缓存配置。 应用设置.json 您的申请。以下 IDistributedCache 例如添加一个部分 NCacheSettings 它配置缓存名称。 您可以根据您注册的缓存更改名称。

重要提示

确保指定的缓存正在运行。

. . .
"NCacheSettings": {
    "CacheName": "demoCache",
    "EnableLogs": "True",
    "ExceptionsEnabled": "True"
}
. . .
注意:

为确保操作是故障安全的,建议处理应用程序中的任何潜在异常,如中所述 处理故障.

指定缓存配置后,使用 NCache 提供自定义方法 AddNCacheDistributedCache 方法中 启动文件 设置 NCache 作为存储对象的默认缓存。

public void ConfigureServices(IServiceCollection services)
{
    services.AddNCacheDistributedCache(Configuration.GetSection("NCacheSettings"));
}

NCache 现在是底层缓存 IDistributedCache。 假设我们的数据库包含音乐商店的信息,包括专辑信息、流派、艺术家、订单详细信息等。 我们继续获取专辑的详细信息,该专辑存储为 Album 班级。 以下代码片段尝试根据缓存键获取专辑详细信息。 如果在缓存中找不到指定的项目,则会从数据库中获取该项目并将其存储在缓存中,有效期为 10 分钟。 如果在接下来的 10 分钟内没有对该对象执行任何操作,则该对象将从缓存中过期。 同时,如果从缓存中获取,则作为对象返回 Album.

public async Task<IActionResult> Details(
             [FromServices] IDistributedCache cache,
             int id)
{
            var cacheKey = string.Format("album1", id);
            Album album;
            object value;

            if (!cache.TryGetValue(cacheKey, out value)){
                album = await DbContext.Albums
                                .Where(a => a.AlbumId == id)
                                .Include(a => a.Artist)
                                .Include(a => a.Genre)
                                .FirstOrDefaultAsync();

                if (album != null)
                {
                    if (_appSettings.CacheDbResults)
                    {
                        // Remove it from cache if not retrieved in last 10 minutes
                        cache.SetObject(cacheKey, album, new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromMinutes(10)));
                    }
                }
            }
            else
            {
                album = value as Album;
            }
            if (album == null)
            {
                return NotFound();
            }
            return View(album);
   }

参见

.NET: Alachisoft.NCache.缓存.分布式 命名空间。

联系我们

联系电话

+1 214-619-2601   (美国)

+44 20 7993 8327   (英国)

 
邮箱地址

sales@alachisoft.com

support@alachisoft.com

NCache
  • 版本比较
  • NCache 卓越
  • 基准
下载
定价
尝试游乐场

部署
  • 云(SaaS 和软件)
  • 内部部署
  • Kubernetes
  • Docker
技术用例
  • ASP.NET 会话
  • ASP.NET Core 会话
  • 发布/订阅消息
  • 实时 ASP.NET SignalR
  • 物联网(IOT)
  • NoSQL 数据库
  • 流处理
  • 微服务
相关资源
  • 杂志文章
  • 第三方文章
  • 专题文章
  • 视频
  • 白皮书
  • 作品
  • 会谈
  • 博客
  • 文档
客户案例研究
  • 评价
  • 客户
支持
  • 安排演示
  • 论坛(谷歌组)
  • 小技巧
关于我们
  • 领导团队
  • 合作伙伴
  • 新闻
  • 活动
  • 加入我们
联系我们

  • 英语简体中文法语版德语版意大利语版日语版韩语版葡萄牙语西班牙语

  • 联系我们
  •  
  • 网站地图
  •  
  • 使用条款
  •  
  • 隐私政策
©版权所有 Alachisoft 2002 - 版权所有。 NCache 是 Diyatech Corp. 的注册商标。
Back to top