0
我在我的web應用程序的多個位置使用MemoryCache來提高性能。 問題是,我不時會註銷,但會話不應該過期。如果我將緩存提供程序更改爲OrmLite,則不會發生,但總體性能較低。 有沒有一種方法使用OrmLite緩存提供程序來保持會話狀態,同時繼續使用整個應用程序的MemoryCache。 謝謝ServiceStack - 在不同緩存提供者上持續保存會話
我在我的web應用程序的多個位置使用MemoryCache來提高性能。 問題是,我不時會註銷,但會話不應該過期。如果我將緩存提供程序更改爲OrmLite,則不會發生,但總體性能較低。 有沒有一種方法使用OrmLite緩存提供程序來保持會話狀態,同時繼續使用整個應用程序的MemoryCache。 謝謝ServiceStack - 在不同緩存提供者上持續保存會話
當使用MemoryCacheClient時,只要AppDomain回收,會話就會丟失。
要避免這種情況,您可以使用其他任何distributed caching providers。 Redis CacheClient比RDBMS OrmLite緩存提供更好的性能。
ServiceStack只支持註冊其內置組件的單一ICacheClient
的依賴,但你仍然可以在自己的服務註冊和使用一個MemoryCacheClient
,如:
container.Register(new MemoryCacheClient());
,您可以訪問像一個正常的依賴:
public class MyServices : Service
{
public MemoryCacheClient MemoryCache { get; set; }
public object Any(Request request)
{
return base.Request.ToOptimizedResultUsingCache(
MemoryCache, "urn:customers",() => {
return Db.Select<Customer>();
});
}
}