一、概念及介绍
对于集群式应用部署的场景,需要将缓存数据存在到一个或多个缓冲中心,以便不同的客户端可以请求访问、共享到同一份缓存数据,这就是分布式缓存的概念。分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。
与其他将缓存数据存储在单个应用服务器上的缓存方案相比,分布式缓存具有多个优势。
当分发缓存数据时,数据:
- 在多个服务器的请求之间保持一致(一致性)。
- 在进行服务器重启和应用部署后仍然有效。
- 不使用本地内存。
ASP .NET CORE 有多种分布式缓冲的方案:包括Redis、SqlServer、MongoDB、NCache等,无论选择哪种实现,应用都将使用 IDistributedCache 接口与缓存进行交互。
本文主要介绍讲解一下几种分布式缓存实现:
二、分布式 Redis 缓存
Redis 是常用的非关系型数据库(NoSQL),其高性能广受用户喜爱。redis 是一种开放源代码内存中数据存储,通常用作分布式缓存。 可以为 Azure 托管的 ASP.NET Core 应用配置 Azure Redis 缓存,并使用 Azure Redis 缓存进行本地开发。应用使用 RedisCache 实例 (AddStackExchangeRedisCache) 来配置缓存实现。
以下代码启用 Azure Cache for Redis:
builder.Services.AddStackExchangeRedisCache(options =>
{
options.Configuration = builder.Configuration.GetConnectionString("RedisConnctString");
options.InstanceName = "SampleCache";
});