簡體   English   中英

使用ASP.NET HttpCache緩沖Web服務中的數據

[英]Using ASP.NET HttpCache to buffer data from a web service

與使用相同的數據存儲在數據庫表中相反,使用HttpCache緩沖來自Web服務的數據可能會遇到什么問題? 在假設情況下,該服務暫時不可用,如果服務器需要在這段時間內重新啟動,則無法重新填充緩存。 因此,由於這個原因,是否可以像使用SqlServer Session狀態那樣持久化緩存?

我閱讀了使用Singleton模式實現的HttpCache。 這是否意味着在處理來自緩存的對象時應該使用Mutex?

如果一方面通過單獨的線程進程更新緩存,同時又由其他線程讀取緩存,將會發生什么情況?

謝謝。

緩存機制將遇到的最大問題是過時的數據。 由於數據已被緩存,因此它可能與緩存生存期一樣舊。 在事務系統中,這是不可接受的,但是對於其他系統,這很好。 只要了解數據有多舊即可。 我不知道緩存是否可以持久化,但是如果您打算進入數據庫,那么我建議您不要使用緩存,因為其中的一部分是快速的內存訪問對您的數據。

是的,緩存使用諸如Singleton之類的集中式內存存儲。 有關Mutexes的問題的答案是,這取決於您的數據訪問模式。 大多數人使用緩存一次填充數據。 如果該值超時,則高速緩存會將其條目清空,然后重新填充它們。 是的,您可以使用Mutex(或更可能是lock語句)來保護訪問,以防止多個客戶端競相一次全部填充緩存。 但是,IMO比數據一致性點更重要的是性能點,因為客戶端很可能會使用相同的數據相互重寫(同樣,這確實取決於您的情況)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM