首页 新闻 会员 周边 捐助

数据缓存的问题

0
[已解决问题] 解决于 2010-11-28 09:54
<h1>我想弄一个缓存来减少数据库的负担,但是我的访问数据库大多用的是datareader,网上查了,好像不太好做数据缓存用,是不是应该换成dataset+cache的模式?还有就是如果页面缓存+数据缓存同时使用,是不是效果好一点,再问下虚拟主机似乎内存限制比较多,看了一些博客说刚写入内存的缓存就被清除了,是这样么?哈哈~~希望大家帮忙了</h1>
艾克赛尔的主页 艾克赛尔 | 初学一级 | 园豆:4
提问于:2010-11-27 18:33
< >
分享
最佳答案
0

你有数据实体类吗?如果有的话,就缓存这个就行了。

DataReader返回一个实体类或者实体类集合,然后将该实体类或实体类集合放到缓存中,

缓存实现可以使用Microsoft Cache Block,或者Memcached之类的,看你的项目复杂度。

页面缓存+数据缓存同时使用,是正确的。

Launcher | 高人七级 |园豆:45050 | 2010-11-27 18:43
数据实体类是什么?memcached只是知道这么个名字,datareader做缓存能不能说的详细点?还有就是有没有既简单又实用的缓存机制? 哈哈 我的问题多了点~~
艾克赛尔 | 园豆:4 (初学一级) | 2010-11-27 18:57
@InterNationalBigMoth:如果我没记错的话,asp.net有个HttpRuntime.Cache,这个用起来最简单。所谓实体类就是一个只具有属性或字段的类,类似如下: public class Entity{ public string Text{get;set;} public int ID{get;set;} } 通过DataReader读取数据,给Entity 的各个属性赋值, Entity item =new Entity(); entity.Text = datareade.GetString(0); entity.ID =datareader.GetInt32(1); 然后把这个 item 放到 httpruntime.cache中去。
Launcher | 园豆:45050 (高人七级) | 2010-11-27 19:08
谢谢!讲的很详细~~
艾克赛尔 | 园豆:4 (初学一级) | 2010-11-28 09:54
其他回答(1)
0

恩是这样的 所以对于虚拟主机不适合内存缓存,用硬盘缓存-静态页面吧

慧☆星 | 园豆:5722 (大侠五级) | 2010-11-27 20:10
谢谢!
支持(0) 反对(0) 艾克赛尔 | 园豆:4 (初学一级) | 2010-11-28 09:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册