当前位置: 首页 > news >正文

临安区做网站的公司广东网站建设模版

临安区做网站的公司,广东网站建设模版,中山网站建设是什么,电子商务公司最低注册资本背景缓存击穿是指缓存中没有但数据库中有的数据#xff08;一般是缓存时间到期#xff09;#xff0c;这时由于并发用户特别多#xff0c;同时读缓存没读到数据#xff0c;又同时去数据库去取数据#xff0c;引起数据库压力瞬间增大#xff0c;造成过大压力。解决方案1、… 背景缓存击穿是指缓存中没有但数据库中有的数据一般是缓存时间到期这时由于并发用户特别多同时读缓存没读到数据又同时去数据库去取数据引起数据库压力瞬间增大造成过大压力。解决方案    1、设置热点数据永远不过期。    2、加互斥锁互斥锁参考代码如下         2.1、根据key生成object() private static object GetMemoryCacheLockObject(string key){string cacheLockKey string.Format(MemoryCacheLockObjectFormat, key);lock (CacheObject){var lockObject CacheObject[cacheLockKey];if (lockObject null){// 取得每個 Key專屬的 lock object若同時有多個 thread要求相同資料只會(到資料庫)查第一次剩下的從 cache讀取lockObject new object();CacheObject.Set(cacheLockKey,lockObject,new System.Runtime.Caching.CacheItemPolicy(){AbsoluteExpiration DateTimeOffset.UtcNow.AddMinutes(10)});}return lockObject;}} 2.2、lock住GetMemoryCacheLockObject(key) public T GetT(string key, FuncT getDataWork, TimeSpan absoluteExpireTime, bool forceRefresh false, bool returnCopy true) where T : class{try{lock (GetMemoryCacheLockObject(key)){/* System.ArgumentNullException: Value cannot be null. at System.Threading.Monitor.Enter(Object obj) at BQoolCommon.Helpers.Cache.MemoryCacheLayer.Get[T](String key, Func1 getDataWork, TimeSpan absoluteExpireTime, Boolean forceRefresh, Boolean returnCopy) in D:\Source\BQoolCommon\BQoolCommon.Helpers\Cache\MemoryCacheLayer.cs:line 46*/T result CacheObject[key] as T;if (result ! null forceRefresh){// 是否清除Cache強制重查result null;}if (result null){//執行取得資料的委派作業result getDataWork();if (result ! null){Set(key, result, absoluteExpireTime);}}if (returnCopy){//複製一份新的參考string serialize JsonConvert.SerializeObject(result);return JsonConvert.DeserializeObjectT(serialize);}else{return result;}}}catch{return getDataWork();}}总结说明1、缓存中有数据直接走下述代码就返回结果了 T result CacheObject[key] as T;2、缓存中没有数据第1个进入的线程获取锁并从数据库去取数据没释放锁之前其他并行进入的线程会等待再重新去缓存取数据。这样就防止都去数据库重复取数据重复往缓存中更新数据情况出现。 try{lock (GetMemoryCacheLockObject(key)){/* System.ArgumentNullException: Value cannot be null. at System.Threading.Monitor.Enter(Object obj) at BQoolCommon.Helpers.Cache.MemoryCacheLayer.Get[T](String key, Func1 getDataWork, TimeSpan absoluteExpireTime, Boolean forceRefresh, Boolean returnCopy) in D:\Source\BQoolCommon\BQoolCommon.Helpers\Cache\MemoryCacheLayer.cs:line 46*/T result CacheObject[key] as T; 3、取得每个 Key专有的 lock object若同时有多个 thread要求相同资料只会(到数据库)查第一次剩下的从 cache读取。                    string cacheLockKey string.Format(MemoryCacheLockObjectFormat, key);lock (CacheObject){var lockObject CacheObject[cacheLockKey];if (lockObject null){// 取得每個 Key專屬的 lock object若同時有多個 thread要求相同資料只會(到資料庫)查第一次剩下的從 cache讀取lockObject new object();
http://www.pierceye.com/news/379767/

相关文章:

  • vs2015做的网站广东省白云区属于哪个市
  • 微信群投票网站怎么做佳木斯做网站公司
  • 建设网站用哪个主机好阳西哪里有做网站
  • 沈阳市有做网站的公司中文企业网站html模板
  • 破解织梦做的网站有什么页游传奇平台好
  • 临安网站开发网站建设做什么费用
  • 辽宁建设工程信息网网站python 网站开发
  • 企业网站.net免费做ppt的网站
  • 浦城 做网站wordpress下载页面
  • 广西住房城乡建设部网站网站优化怎么看
  • 网站建设负责人证明网络营销的10个特点
  • 泉州市服务好的网站设计塘沽网吧开门了吗
  • 商城网站建设哪家公司好wordpress输出到模板
  • 建站报价网站建设培训学校
  • 杭州高端网站定制手机网站开发应注意
  • 深圳网站建设选云聚达做二手元器件那个网站查价格
  • 网站建设公司企业模板微网站开发制作
  • 北京网站制作计划合理的网站结构
  • 网站建设如何搭建框架兰州seo排名
  • 网站作为医院形象建设cms搭建网站
  • 如何做个购物网站网站开发好不好
  • wordpress国内打开速度慢东莞搜索seo关键词
  • 鹿泉建设网站广安市建设局官方网站
  • 用花生棒自己做网站如何看网站的浏览量
  • 大连网站排名电商线上培训
  • 做金融网站做简历的网站
  • 求网站建设合伙人wordpress子页面怎么修改密码
  • 怎样登录建设互联网站厦门海绵城市建设官方网站
  • 网站怎么做权重互联网平台推广怎么做
  • 网站建设如果登录失败男生和男生做污的视频网站