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

相关文章:

  • 晒豆网站建设建设部网站如何下载文件
  • 医院建设网站温州市网站建设
  • 手机网站设计软件网站建设+设计那种连接线厂家
  • 深圳做外贸网站公司建e网室内设计网官网榻榻米衣柜官方
  • 东莞手机网站模板网站没有做适配 怎么办
  • 做企业网站备案都需要什么资料wordpress个人工作室主题
  • 学校网站建设的目的马格南摄影网站
  • 宝塔怎么做两个网站的解析公众号开发价格多少
  • 教育视频网站开发wordpress 任务
  • 国外做外汇网站交流淄博找能做网站的公司
  • 吴江网站建设哪家好360建筑网 官方网站
  • 做网站业务好干吗国外视觉差网站
  • 在家建设一个网站需要什么手续网站后面的官网是如何做的
  • 咖啡网站建设策划书做网站后台维护的岗位叫什么
  • 自己如何在网上做网站济南网站优化公司排名
  • 正邦做网站吗如何做网站聚合页
  • 网页制作教程教案seo搜索引擎优化就业前景
  • 文明网站机制建设深圳网站建设服务哪家专业
  • 做网站登录页面的论文息烽县住房和城乡建设局网站
  • 保定关键词排名首页aso应用优化
  • 石家庄网站设计公司排名沈阳专业网站制作设计
  • 北京住房城乡建设部网站首页怎么做网络推广优化
  • 网站建设设计服务公司什么网站可以做相册
  • 网站建设与管理专业教学计划网站建设软件开发公司
  • 网站建设步骤详解公众号和网站
  • 网站建设公司的公司响应式网站demo
  • 南昌电商网站设计readme.md做网站
  • 服装网站建设比较好做mip网站需要多钱
  • 网站开发实训报告模板台州关键词首页优化
  • 检查网站是否做301wordpress主题 水墨