我将数据存入System.Web.HttpRuntime.Cache中,修改数据时做remove操作,在读cache时如果没有就做insert。
但是我在前台读出的cache数据中的内容时,
不停的刷新页面,内容一会是修改前的一会儿是修改后的。。
这是什么问题啊?
/*******************/
原来是IIS设置了多个进程。
那么在怎么清除多个进程中的缓存信息呢?
根据您的问题描述,你应该是使用的IIS Web Garden模式,且工作进程(Worker Process)大于1。在这种情况下,可能存在多个worker process并存,所以你的remove和insert会发生在不同的进程内,而HttpRuntime.Cache是属于进程内的内存,不能实现进程间共享。
可能的解决方案是:1.设置IIS的Web Garden的worker process是1,这样同一时间只会有1个proces在运行。但这可能带来性能的损失。 2. 使用分布式缓存程序如memcached, redis等等。