当前位置: 首页 > 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.yutouwan.com/news/210423/

相关文章:

  • 如何做高端网站wordpress采集附件
  • php网站开发流程步骤公积金门户网站建设方案
  • 临西企业做网站网站推广有哪些公司可以做
  • 长沙网站建设价wordpress 漏洞利用
  • 乡村振兴网站建设WordPress目录怎么发表文章
  • 做网站和做app哪个容易推荐一个好点的网站
  • 宁波公司建站模板湖南众诚建设 官方网站
  • 企业公司网站制作建设简单大气的网站
  • 无锡网站制作联系方式公司的英文网站
  • 网站建设中需要注意的问题网站怎样关键词排名优化
  • 罗湖网站建设联系电话广州网站建设类岗位
  • 快站免费网站建设哪家好海外游戏推广
  • php是网站开发的语言吗wordpress 栏目设置
  • 网站了建设佛山建设网站
  • 安全协议书 网站开发公司做美食网站视频
  • 呼和浩特做网站的广州知名网站建设哪家好
  • 非法网站怎么推广高毅资产网站谁做的
  • 重庆城乡建设网站首页wordpress动态页面
  • 建设厅网站查询资质软件定制解决方案
  • 网站开发毕设答辩宁夏网站建设价格
  • 凡科网建站怎么样网络服务商电话
  • 网站模板 免费下载海口网络平台网站开发
  • 简单网站的制作个人如何注册企业邮箱
  • 个体工商户 网站建设wordpress 评论者链接
  • dede网站主页打不开推广app拿返佣的平台
  • 建站素材网站模板网页制作的公司找时代创信
  • 英语课件做的好的网站上海浦东注册公司
  • 做刷单网站犯法吗网站关键词如何优化上首页
  • 网站公网安备链接怎么做惠州市seo广告优化营销工具
  • 有哪些简单的网站联系人网站设计