我一直在研究是否可以在外部数据库(如 Redis、MongoDb 或其他高度可扩展的工具)中缓存 .NET 会话状态。
我的研究结果是,尽管 MongoDB 有更多的集成来做这类事情,但似乎 Redis 的性能要高得多,并且有更多的选项(密钥过期、集合等)可供使用。
还有另一个名为ServiceStack的框架,它有一个 RedisClient 的实现,但恕我直言,它的实现方式比我想的要耦合得多。
public override object OnGet(CachedOrders request)
{
var cacheKey = "some_unique_key_for_order";
return base.RequestContext.ToOptimizedResultUsingCache(this.CacheClient, cacheKey, () =>
{
//This delegate will be executed if the cache doesn't have an item
//with the provided key
//Return here your response DTO
//It will be cached automatically
});
}
所以在这项研究之后,我想知道你的意见,以及你是否在你的任何应用程序中实现了这种缓存。你能分享你的经验吗?
谢谢!