.net中数据缓存使用
2016-05-26 16:02
309 查看
今天 遇到一个问题 访问一个接口数据 基本上是固定的,于是想把数据 缓存下来。。。于是版本1 诞生了
跑起来没问题 然后 突然想到 一个问题 如果 接口数据变化 怎么办。。。。。。。于是想加了 缓存时间 发现 自己实现还要存过期时间 有点复杂 查查资料 发现net4.0有个 ObjectCache 于是 2.0 诞生了
相关资料 :
http://www.cnblogs.com/TianFang/p/3430169.html
private static ConcurrentDictionary<int, List<xxxxx>> xxxxCache = new ConcurrentDictionary<int, List<xxxxx>>(); private List<xxxxx> GetXXXByCache(int id) { if (!xxxxCache.ContainsKey(Id)) { var list = xxxxService.GetxxxxList(Id); xxxxCache.TryAdd(Id, list); } return xxxxxCache[Id]; }
跑起来没问题 然后 突然想到 一个问题 如果 接口数据变化 怎么办。。。。。。。于是想加了 缓存时间 发现 自己实现还要存过期时间 有点复杂 查查资料 发现net4.0有个 ObjectCache 于是 2.0 诞生了
private static ObjectCache DealerCache = MemoryCache.Default; private List<xxxxx> GetxxxByCache(int Id) { var cachekey = "xxxlist_" + Id; var ret = Cache.Get(cachekey) as List<xxxx>; if (ret == null) { ret = _xxxxService.GetxxxxList(Id); var policy = new CacheItemPolicy() { AbsoluteExpiration = DateTime.Now.AddMinutes(10) }; Cache.Set("list_" + Id, ret, policy); } return ret; }
相关资料 :
http://www.cnblogs.com/TianFang/p/3430169.html
相关文章推荐
- 距离感应
- 利用MyBatis Generator自动创建代码
- Fragment学习记录一 静态创建fragment
- 重要经验八---UIImage转换为CVPixelBufferRef
- 多核与多个CPU啥区别
- HDU2647
- EXP-00003 ORA-01455 EXP导出报错
- java服务器端配置支持跨域请求
- iOSwebView修改字体大小字体颜色背景颜色
- Mac Pro下卸载安装Mysql
- arm 红外驱动
- form提交
- rigidbody.velocity 控制角色的移动
- LR11如何打开回放结果窗口 “Results.qtp”,
- 141. Linked List Cycle(Linked List)
- 模态对话框与非模态对话的几种销毁方法与区别
- this和super的使用
- php变量作用域的浅析
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
- C++Primer:Break、Continue、Goto、Try/异常处理