1

我剛剛從單個Web服務器環境遷移到multiwebserver環境,並且過去我一直使用nhibernate和syscache二級緩存。在多服務器環境中使用Syscache作爲nhibernate二級緩存是否存在問題?

我知道我需要遷移到分佈式nhibernate二級緩存解決方案(memcache,velocity等),但(出於一系列原因),它需要一點時間來完成遷移。

有什麼特別的,我需要擔心我目前的狀態(目前在多Web服務器環境中使用Syscache二級緩存),還是它不會像分佈式解決方案一樣具有性能(給定我將在每臺網絡服務器上實現本地並行緩存,而不是跨服務器的集中式緩存)。

我基本上試圖弄清楚,如果這是這個設置的任何問題,或者它只是沒有它可能的那麼快。

回答

1

在Web場環境中,建議使用分佈式緩存,否則每個Web服務器都將擁有自己的緩存副本,效率可能較低。 Syscache使用默認的ASP.NET緩存提供程序,因此它的執行速度將與此默認的ASP.NET緩存一樣快。默認情況下,它存儲在每個Web服務器的內存中。

因此,使用默認ASP.NET緩存的SysCache將在Web場環境中工作,但如果您使用分佈式緩存則效率不高。

+0

如果我從一個Web服務器更新或插入數據庫,該怎麼辦?其他Web服務器上的二級緩存如何得到通知? – leora

+0

@ooo,對於非分佈式緩存,其他服務器根本不會收到通知。對於分佈式緩存,使用特殊的散列函數來計算相應項目存儲在哪個服務器上。 –

+0

如果它沒有得到通知,不能導致其他服務器試圖更新陳舊的數據? – leora

相關問題