私は、Redis、MongoDb、またはその他の高度にスケーラブルなツールなどの外部Dbsに.NETセッション状態をキャッシュしてもよいかどうかについて調査を行ってきました。
私の調査の結果は、MongoDBにはこの種のことを行うためのより多くの統合がありますが、Redisの方がはるかにパフォーマンスが高く、使用するオプション(キーの有効期限、セットなど)がはるかに多いようです。
RedisClientを実装したServiceStackと呼ばれるこの他のフレームワークがありますが、IMHOの実装方法は、私が望むよりもはるかに結合されています。
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
});
}
したがって、この調査の後、あなたの意見と、この種のキャッシュをいずれかのアプリに実装したかどうかを知りたいと思います。経験を共有していただけますか?
ありがとう!