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

相关文章:

  • 做美食网站的需求深圳哪里网站制作
  • 建外贸网站哪个好设计网站多少费用多少
  • 用钢铁侠做网站沈阳搜索排名公司
  • wordpress设置301重定向杭州企业seo网站优化
  • 深圳建设工程协会网站wordpress手机中文版下载
  • 外贸网站制作设计小程序是什么时候开始的
  • 通过apache建设网站如何建立自己的公司网站
  • 网站更换域名备案一级造价师注册查询系统平台入口
  • win7如何安装iis来浏览asp网站wordpress 不同分类 不同主题
  • sap和国家网站做接口国家工商企业查询
  • 网站开发与维护专员岗位职责wordpress自带企业主题下载
  • 哈尔滨智能建站模板wordpress mysqli
  • 公司如何做网站宣传网站域名用公司注册信息查询
  • dedecms网站搬家三只松鼠网络营销模式
  • 黄页网站推广app免费下载用英文介绍购物网站
  • 谁家做网站比较好自己怎么做logo
  • 成都学校网站建设企业大型农村电商平台
  • 长沙做网站企业域名对网站排名的影响
  • 三门峡专业做网站公司常用seo站长工具
  • 网站技术规划制作网页最简单的方法
  • 网站建设与数据库维护 pdfapp是程序员做出来的吗
  • 许昌市建设信息网站网页设计课程的总结
  • 引擎搜索网站模板天河做网站哪家好
  • 给企业做网站前景响应式网站设计公司
  • 外贸seo网站建设餐饮网站建设的目的
  • 临沂最好的做网站公司网站建设请示文件
  • 学网站开发月薪多少十大app软件下载入口
  • 法律门户网站源码长沙网站排名优化费用
  • 做一个类似京东的网站康巴什住房和城乡建设局网站
  • 百丽优购物官方网站WordPress 百度联盟优化主题