+ -
当前位置:首页 → 问答吧 → 求缓存方案

求缓存方案

时间:2011-12-15

来源:互联网

目前有一个表(几乎每个页面都要访问到),这个表是放菜单的,所以我就像放到缓存里面去

我以前的缓存做法是从数据库查询出这个表,将整个表的记录封装到Datatable里面,然后将整个datatable放到缓存
但是这个缓存用的地方太多,比如根据ID取某列的值

之后发现服务器CPU太高了,问了些朋友,朋友说因为我缓存放的是整个datatable(里面有500条记录左右)对象
建议我缓存里面放哈希类型,不用整个datatable存进去,但是换成哈希值和,哈希是二维的,我这个表有很多列数据的,好像又没有多维的数组
这个时候怎么办?

请CSDN的牛人帮忙给个方案!

究竟缓存里面放什么类型的对象,性能会好点?

作者: pp8403   发布时间: 2011-12-15

使用全局变量 存一份这个就足够了;然后每个用到的地方都访问这个全局变量

作者: baiwenyu   发布时间: 2011-12-15

推荐不用缓存,用XML存储的路过

作者: woairuijuan9   发布时间: 2011-12-15

服务器CPU太高跟这500条缓存有什么关系?你是用Cache吧,还是觉得你找找其它原因造成的CPU过高,缓存跟CPU关系不大

作者: c02645   发布时间: 2011-12-15

如果你频繁的对数据表做耗时操作,比如遍历,是会导致CPU高,这种时候可以考虑对程序优化。如果你频繁的根据ID来获取记录,可以考虑保存记录到Dictionary中,ID做键,对应的记录做值。记录应该设计成对应的实体类,便于存到键值中。这样以后根据ID获取记录可以避免遍历。
话说500条记录也不多啦,计算遍历也不算什么,你确定CPU占用高问题是因为这个?要是CPU占用不超过70%也还OK啦,老让CPU闲着干什么,你又不用响应节能减排的号召。

作者: qwertxp   发布时间: 2011-12-15

缓存热数据

作者: Sandy945   发布时间: 2011-12-15

从上面的描述来说,是电脑太烂了,可以考虑换台电脑

作者: ydwydw89   发布时间: 2011-12-15

引用 2 楼 woairuijuan9 的回复:

推荐不用缓存,用XML存储的路过

Xml我觉得没得必要,序列化到文件存储的好

作者: ydwydw89   发布时间: 2011-12-15

我存哈希和整个datatable,哪个占用量高

作者: pp8403   发布时间: 2011-12-15

引用 8 楼 pp8403 的回复:

我存哈希和整个datatable,哪个占用量高

哈希表是便于查找的!不适合频繁插入,你放入缓存的目的是什么?

作者: bios8086   发布时间: 2011-12-15