日期:2014-05-17  浏览次数:20696 次

请教一个将数据进行缓存的性能问题
mssql数据库,大概有五六万条数据(都是类似文章形式的)
目的是想让用户访问的快速些,减少数据库的请求(远程数据库所以读取起来有些慢)
暂时不考虑生成静态文件,所以目前打算将数据缓存到内存上,实现的方式是这样的
1、比如用户打开view.asp?id=153这个页面,程序先判断缓存中是否有这个id的数据(如title和content等),若有的话直接读取缓存里的数据,若没有则请求数据库,同时将此id数据保存到缓存里(保存到缓存里的数据一般为id,title,content等,用特殊标记隔开以方便读取各项),后台若修改该数据后同时清空下该id的缓存以达到即时更新。
2、这样实现的话,有可能将几万条的数据都暂时存放到缓存里(比如网站pv较大的情况)
问题
1、对于一个内存512M的vps来说,能否跑的起来?(网站ip几百个吧)
2、对于这样一个数据量(几万条)放入到缓存后大概能占多少内存?
3、若vps重启了,是不是服务器缓存自动全部清空掉了?
求给位给指点下啊,谢谢啦

------解决方案--------------------
1,估计够呛,再者缓存也不是存储所有的内容
2,你自己可以计算,你把任意一篇文章拷入到文本文件里,计算一下大小,一般来说在5K-10K以内, 乘以5-6万,你想想是个啥概念
3,你放在内存中,肯定是这样的


建议: 不要一次性放这么多数据到缓存,应该按需存储,并且设置一个上限值,比如100,超过这个数量的应把时间最早的那条记录删除
------解决方案--------------------
最好只存用户经常会去点击的页面,比如第一页。也就是说只把第一页的数据存进缓存里,其他的都从数据库取吧
------解决方案--------------------
既然有 Application 对象,为什么不去利用一把?