.net ObjectCache的异步版本?

.net ObjectCache的异步版本?,.net,caching,asynchronous,redis,memcached,.net,Caching,Asynchronous,Redis,Memcached,我正在考虑通过类实现一些分布式缓存客户端(Redis和Memcached)。我注意到,这个抽象类上的所有方法都是同步的,这意味着它们都不会返回任务。由于在分布式缓存中获取或放置对象的调用将离开本地计算机,并包括网络访问,因此我希望使用这些操作的异步版本。那么,在.Net framework中是否有一个标准的缓存类,比如支持异步模式的CacheObject?使用ParallelExtensionsExtras NuGet包中包含的AsyncCache类: 尽管@TrevorBrooks提到的并行扩

我正在考虑通过类实现一些分布式缓存客户端(Redis和Memcached)。我注意到,这个抽象类上的所有方法都是同步的,这意味着它们都不会返回任务。由于在分布式缓存中获取或放置对象的调用将离开本地计算机,并包括网络访问,因此我希望使用这些操作的异步版本。那么,在.Net framework中是否有一个标准的缓存类,比如支持异步模式的CacheObject?

使用ParallelExtensionsExtras NuGet包中包含的AsyncCache类:


尽管@TrevorBrooks提到的并行扩展包中有一个AsyncCache,但它并没有按照我预期的方式工作。我需要从分布式缓存中放置/获取/删除项,并执行一项可以等待的任务。因此,我最终创建了以下界面:

public interface IAsyncCache<T>
{
    Task Initialize(Dictionary<string, string> parameters);
    Task Put(string key, T value, TimeSpan lifeSpan);
    Task<T> Get(string key);
    Task Remove(string key);
}
公共接口IAsyncache
{
任务初始化(字典参数);
任务Put(字符串键、T值、时间跨度寿命);
任务获取(字符串键);
任务移除(字符串键);
}
我已经能够针对几个缓存提供程序实现该接口,这些缓存提供程序为其get/put/remove方法提供Task/Async版本,并且运行良好


.

感谢您的链接,对于其他读者,这里是缓存类的一个很好的概述:在查看了parallel extensions库中包含的AsyncCache类之后,它并没有按照我预期的方式工作。我希望得到一个异步版本的Get/Put/Remove操作,但没有找到。因此,我最终滚动了自己的接口,如下所示:
public interface iasyncache{Task Initialize(字典参数);Task Put(字符串键,T值,时间跨度);Task Get(字符串键);Task Remove(字符串键);}
一个次要建议:在
Async
中结束名称,以遵循以下步骤。