.net 缓存的相关问题
我有一个表 里面记录大概在50万 经常要看的有10w左右 而且查看的频率特别大 高峰时分分钟select几万次
为了减轻数据库查询压力 我把这个表的每条记录都以id为key放入了cache里 这样数据库的压力确实是比以前小了很多,但是我在缓存管理页面发现有时候有十几万条缓存记录 但过了会又变成几千 或者几万条了
我估计是被自动清空了 但看内存使用一直都不是很高 我每条缓存的东西也就是几十个字符
想请问。net对缓存有没有大小限制 有的话该怎么破
或者是不是缓存数有限制 超过多少条后自动清空了
[解决办法]
应该有限制的
[解决办法]
这个应该看内存。只要内存足够无上限
[解决办法]
cache有过期策略,不设过期的话内存有多少用多少,内存用光了会自动清掉一批,另外iis的应用程序池里也有设置内存大小
[解决办法]
不懂你为什么非要把10w的数据放到缓存去,这样好玩咩?
缓存不是这样用的,缓存只适用于一些简单的常用的数据,不合适做大数据存储,你服务器内存很大时另当别论
对于大数据查询我们的SQL有已分区表和已分区索引
就是很一个表或一个数据库分为很多个文件来存储(有规律的文件存储),每次只去查询相应的文件,这样就实现了大数据的快速查找
[解决办法]
哪有这样做缓存的,10w条的数据放进缓存,丢失的原因是web.config被修改过或站点被重启。
其实,几w,十几w的数据级别没什么压力。
[解决办法]
缓存可以使用的大小与.net没有关系,只与机器有关系。
[解决办法]
Web缓存基本是不稳定的。因为你都不知道哪一秒IIS应用程序池会进行回收。所以如果你拥有服务器权限的话,建议开辟较大的内存区域进行部署Memcache分布式缓存策略。会比Web缓存优势的多。另外缓存几千条高频率访问的常用数据还是比较正常的。缓存10W条的数据也不是说不可以。问题是你的服务器内存那估计得很大才能满足生产需要。否则感觉10W条数据的缓存这个还真的有点很不合适。譬如确实是10W条常见类型的页面列表这类的,你可以采用静态页面来定期更新。而不应该再用缓存存储这么大量的数据。。这时候你可以考虑数据库的性能优化方式和其他实现方式。
[解决办法]
可以将数据库分为活动与不活动两个表, 查询时加个条件,按时间段查
[解决办法]
如果你用IIS的缓存的话 他会根据你的系统情况 自动的来缓存的
你可以自己写一个缓存服务器 你可以百度 memcached 看一看