2010-01-21 203 views
0

我正在使用Asp.Net高速缓存机制进行频繁更改的Web应用程序。 缓存容纳聊天参与者及其消息,并且需要跟踪 参与者的存在。高速缓存持久性

数据变化非常频繁,参与者进出,消息被发送和接收。

该缓存为我提供了以下解决方案: - 性能 - 减少数据库中的DDL操作数(SQL Server) - 我们遇到了事务日志已满的问题。

我想继续以这种方式工作,但我不能依靠缓存(当缓存回收时,我可能会丢失所有数据,或者当内存变满时,我可能会丢失所有数据)。

我现在看到的选项是每次缓存更改时将数据保存到数据库,否则我将丢失数据。

但这意味着许多SQL更新/插入语句。

有人建议我坚持数据库evey N消息/更改,但它仍然不是一个可靠的解决方案。我仍然失去数据。

任何人有想法?

感谢 亚龙

回答

2

修复您的数据库容量的问题。如果您需要能够可靠地每秒更改n,那么您的数据库需要能够每秒处理n操作。

其他任何事情(包括保存每一个操作)都会导致数据丢失的可能性。如果您可以接受数据丢失风险,那么这将起作用。

分布式缓存(项目速度或其他)也可以帮助(数据至少保存到多台机器)。但是这需要额外的硬件,您可以将其花在数据库的容量上。

最后,不是试图缓存更改,而是寻找其他缓存数据库读取的机会,取消该负载可能允许写入通过。至少在你获得更多的使用之前。