我做的网站使用了cache存储部分公共数据,
但是,这个数据是经常变动的。也就是在多用户同时修改一个cache时,是否需要做同步处理。我查了网上很多资料,Application是需要做同步处理的,但是没有找到关于cache是否需要同步处理但是,application和cache的差别好像只在于是否有过期时间。我的问题是,当多用户同时读取和修改一个cache时,是否需要lock住对象,实现同步操作。
但是,这个数据是经常变动的。也就是在多用户同时修改一个cache时,是否需要做同步处理。我查了网上很多资料,Application是需要做同步处理的,但是没有找到关于cache是否需要同步处理但是,application和cache的差别好像只在于是否有过期时间。我的问题是,当多用户同时读取和修改一个cache时,是否需要lock住对象,实现同步操作。
解决方案 »
- button按钮sleep
- iis如何配置才能访问asp.net网页
- 求文件夹和文件操作的C#代码?
- 刻意的巨大浏量攻击,如何防范?
- 如何查看本电脑ASP.NET的版本?
- 问个极菜得问题!!!!!!!!!
- 请问在web窗体中如何实现TAB多页面?有类似VB中SSTAB的控件么?谢谢,在线等待
- asp.net button能否用runat="server"的html控件取代?
- 有看过 亲密接触ASP.NET 全书(PDG) 的吗?
- 怎样用ASP.NET语句动态添加RADIOBUTTONLIST的选择项?
- 在Web页面上直接打开、编辑、创建word和EXCEL文件 怎么实现?
- 请大哥指教简洁的写法(VB.NET转C#的小弟)
This type is thread safe.
理论上线程安全的不需要你额外的写同步代码
单纯的读写缓存要不要加锁,读数据要一次性读出来.比如下来的代码可能出错:
if(Cache['缓存名']!=null)
{
Type T=Cache['缓存名'] as Type;//这样T还是可能为null的
//...
}
要改为
Type T=Cache['缓存名'] as Type;
if(T!=null)
{
//...
}
如果是读取的话,先去Cache中找,如果没有再去查数据,如果有就直接读Cache中的值即可