2010-01-21 190 views
0

我正在使用Asp.Net高速緩存機制進行頻繁更改的Web應用程序。 緩存容納聊天參與者及其消息,並且需要跟蹤 參與者的存在。高速緩存持久性

數據變化非常頻繁,參與者進出,消息被髮送和接收。

該緩存爲我提供了以下解決方案: - 性能 - 減少數據庫中的DDL操作數(SQL Server) - 我們遇到了事務日誌已滿的問題。

我想繼續以這種方式工作,但我不能依靠緩存(當緩存回收時,我可能會丟失所有數據,或者當內存變滿時,我可能會丟失所有數據)。

我現在看到的選項是每次緩存更改時將數據保存到數據庫,否則我將丟失數據。

但這意味着許多SQL更新/插入語句。

有人建議我堅持數據庫evey N消息/更改,但它仍然不是一個可靠的解決方案。我仍然失去數據。

任何人有想法?

感謝 亞龍

回答

2

修復您的數據庫容量的問題。如果您需要能夠可靠地每秒更改n,那麼您的數據庫需要能夠每秒處理n操作。

其他任何事情(包括保存每一個操作)都會導致數據丟失的可能性。如果您可以接受數據丟失風險,那麼這將起作用。

分佈式緩存(項目速度或其他)也可以幫助(數據至少保存到多臺機器)。但是這需要額外的硬件,您可以將其花在數據庫的容量上。

最後,不是試圖緩存更改,而是尋找其他緩存數據庫讀取的機會,取消該負載可能允許寫入通過。至少在你獲得更多的使用之前。