.Net Core 教程 Part4 – (31)(32)分布式缓存

Part4 – (31) 分布式缓存

分布式系统中的内存缓存

.Net Core 教程 Part4 – (31)(32)分布式缓存
节点过多时

如果集群节点的数量非常多的话,这样的重复查询也同样可能会把数据库压垮。

分布式缓存服务器

1、常用的分布式缓存服务器有Redis、Memcached等。

2、.NET Core中提供了统一的分布式缓存服务器的操作接口IDistributedCache,用法和内存缓存类似。

3、分布式缓存和内存缓存的区别:缓存值的类型为byte[],需要我们进行类型转换,也提供了一些按照string类型存取缓存值的扩展方法。

.Net Core 教程 Part4 – (31)(32)分布式缓存
分布式缓存服务器
.Net Core 教程 Part4 – (31)(32)分布式缓存

用什么做缓存服务器

1、用SQLServer做缓存性能并不好。

2、Memcached是缓存专用,性能非常高,但是集群、高可用等方面比较弱,而且有“缓存键的最大长度为250字节”等限制。可以安装EnyimMemcachedCore这个第三方NuGet包。

3、Redis不局限于缓存,Redis做缓存服务器比Memcached性能稍差,但是Redis的高可用、集群等方便非常强大,适合在数据量大、高可用性等场合使用。

分布式缓存用法

1、NuGet安装Microsoft.Extensions.Caching.StackExchangeRedis

2、startup管道中配置:

builder.Services.AddStackExchangeRedisCache(options =>
{
    options.Configuration = "localhost";
    options.InstanceName = “yzk_”;//避免混乱
});

3、用时间显示测试用法。

Part4 – (32) 分布式缓存操作帮助类

需求:

1、解决缓存穿透、缓存雪崩等问题。

2、自动地进行其他类型的转换。

public interface IDistributedCacheHelper
{
	TResult? GetOrCreate<TResult>(string cacheKey, Func<DistributedCacheEntryOptions, 
			TResult?> valueFactory, int expireSeconds);
	Task<TResult?> GetOrCreateAsync<TResult>(string cacheKey, 
		Func<DistributedCacheEntryOptions, Task<TResult?>> valueFactory, int expireSeconds);
	void Remove(string cacheKey);
	Task RemoveAsync(string cacheKey);
}

本文版权归个人技术分享站点所有,发布者:chaoqiang,转转请注明出处:https://www.zhengchaoqiang.com/1511.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
chaoqiangchaoqiang
上一篇 2022-01-07 18:56
下一篇 2022-01-07 20:56

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

近期个人博客正在迁移中,原博客请移步此处,抱歉!