Web Cache
2024-09-05 17:51:03
我们都知道,网站对于一些常用数据做缓存,会加速网站访问,像下面这样:
public string GetFoo()
{
if ( cache.get("Foo") == null )
{
cache.set("Foo", GetFooFromDb());
}
return cache.get("Foo");
}
上面的方法如果GetFooFromDb()的开销很小或者运行时间很短,则影响不大,无非就是高并发的时候多执行几次GetFooFromDb()和设置缓存的值,但是如果GetFooFromDb()开销很大或者运行时间很长,或者是很多数据缓存的集合,则需要保证GetFooFromDb()方法只被执行一次:
private static object GetFooLock = new object();
public string GetFoo()
{
if ( cache.get("Foo") == null )
{
lock(GetFooLock)
{
if ( cache.get("Foo") == null )
{
cache.set("Foo", GetFooFromDb());
}
}
}
return cache.get("Foo");
}
最新文章
- VS2010--2013使用技巧及使用过程中遇到的问题
- PTPX中的report 选项
- canvas-star6.html
- 移动端的日期插件 mobiscroll 2.14.4 破解版
- ios开发所有的iCON 的大小
- redisbook笔记——redis内部数据结构
- AE-模板替换->;愉快今日--视频样片!
- 计算机安装了IE8一半退出重启时,桌面只显示背景
- MFC HTTP
- Redhat6.4下配置本地yum
- codeforces div2.C
- 从实践的角度理解cookie的几个属性
- JavaWeb初级进阶高级学习方向计划
- Codeforces Round #481 (Div. 3)
- A1081. Rational Sum
- kubernetes ui 搭建
- css基础--常用css属性01
- springBatch学习 batch的使用方式(5)
- 在Windows Server 2008 R2(x64)上安装.NET Framework 4.5 兼谈.NET Framework 4.0 “在服务器核心角色上不受支持”含义
- Sqlserver生成带数据的脚本
热门文章
- MYSQL存储过程,函数,光标
- Python的ORM介绍
- 配置基于Vim的Python开发环境
- paper:synthesizable finite state machine design techniques using the new systemverilog 3.0 enhancements 之 standard verilog FSM conding styles(二段式)
- 用Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
- STM32CUBEMX入门学习笔记2:关于STM32芯片使用内部flash
- 蓝桥--2n皇后问题(递归)--搬运+整理+注释
- selenium2自动处理验证码
- Android兼容性测试CTS --环境搭建、测试执行、结果分析
- python_字符串,元组,格式化输出