List集合写入缓存,我已经简单的写了一个方法了。各位能不能提点意见改善一下,或者是有更加优化的方法。

zj25810 2014-04-30 10:47:28
我想要更贴近需求的方法,网站想要调用一个随身携带设备的数据,然后设备商给出的接口只能根据时间查每一天的数据。

那我就想一次性查出一个月或者几个月(这个需要看具体需求)的数据,然后存入缓存再进行调用。

开始我想存xml,但是每一个设备都会有一个对应的code,每个code每一天都会有好多条数据,数据量有点多。

所以我就想存一个本地的缓存,当用户在我们网站查的时候,先需要输入他的设备code,然后一次调出他一个月的数据量存下来。

简单的写了一下,大家给点意见吧

protected void Button8_Click(object sender, EventArgs e)
{
string code = txt.Text;
List<Summarys> list = new List<Summarys>();
for (int i = 1; i <= 30; i++)
{
Summarys model = EbApi.getsummarys(h.auth_key, DateTime.Now.AddDays(-i), code);
list.Add(model);
}
System.Web.Caching.Cache cache = System.Web.HttpContext.Current.Cache;
if (cache["list_"+code]!=null)
{
cache.Remove("list_"+code);
}
cache.Insert("list_" + code, list, null, DateTime.Now.AddHours(2), System.Web.Caching.Cache.NoSlidingExpiration);
}
...全文
795 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
joyhen 2014-05-04
  • 打赏
  • 举报
回复
取出数据,然后参考linq中的take方法。 另外,移动端可以将数据对象序列化成本地bin文件,web的直接cache就好了,cache有时效性和优先级的,看看msdn就没什么问题的
baysos 2014-05-04
  • 打赏
  • 举报
回复
代码本身没什么好说的,就是一些缓存操作而已。 你可以给出一个配置文件,文件配置中存放一个值来决定取多少天的数据,然后服务每天根据这个配置跑取数据程序。至于存在哪,我觉得存数据库,xml或其他缓存都差不多,数据压力无非是在数据库服务器上还是逻辑服务器上的问题
lyx266 2014-05-04
  • 打赏
  • 举报
回复
每天都去设备商那把最新数据查询出来 存到自己的数据库中 以后查询就方便啦....
来撕特成 2014-05-04
  • 打赏
  • 举报
回复
可以做缓存表,将数据存入里面,记录存储时间,每次只是根据时间查询而已
zj25810 2014-05-04
  • 打赏
  • 举报
回复
引用 1 楼 feiyun0112 的回复:
不用一次性查出一个月或者几个月 需要查哪天的数据,就先去缓存找,如果没有再查设备,存入缓存
谢谢了,不过当用户添加了设备号之后,网站上会有他的数据走势,可能这一点我没说清楚,所以这样不可取。 现在我改了解决方法,改成存入数据库了。 但是我还是想了解一下有没有用缓存就能解决这个问题的方法。
feiyun0112 2014-04-30
  • 打赏
  • 举报
回复
不用一次性查出一个月或者几个月

需要查哪天的数据,就先去缓存找,如果没有再查设备,存入缓存

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧