求缓存方案

问题描述

目前有一个表(几乎每个页面都要访问到),这个表是放菜单的,所以我就像放到缓存里面去我以前的缓存做法是从数据库查询出这个表,将整个表的记录封装到Datatable里面,然后将整个datatable放到缓存但是这个缓存用的地方太多,比如根据ID取某列的值之后发现服务器CPU太高了,问了些朋友,朋友说因为我缓存放的是整个datatable(里面有500条记录左右)对象建议我缓存里面放哈希类型,不用整个datatable存进去,但是换成哈希值和,哈希是二维的,我这个表有很多列数据的,好像又没有多维的数组这个时候怎么办?请CSDN的牛人帮忙给个方案!究竟缓存里面放什么类型的对象,性能会好点?

解决方案

解决方案二:
使用全局变量存一份这个就足够了;然后每个用到的地方都访问这个全局变量
解决方案三:
推荐不用缓存,用XML存储的路过
解决方案四:
服务器CPU太高跟这500条缓存有什么关系?你是用Cache吧,还是觉得你找找其它原因造成的CPU过高,缓存跟CPU关系不大
解决方案五:
如果你频繁的对数据表做耗时操作,比如遍历,是会导致CPU高,这种时候可以考虑对程序优化。如果你频繁的根据ID来获取记录,可以考虑保存记录到Dictionary中,ID做键,对应的记录做值。记录应该设计成对应的实体类,便于存到键值中。这样以后根据ID获取记录可以避免遍历。话说500条记录也不多啦,计算遍历也不算什么,你确定CPU占用高问题是因为这个?要是CPU占用不超过70%也还OK啦,老让CPU闲着干什么,你又不用响应节能减排的号召。
解决方案六:
缓存热数据
解决方案七:
从上面的描述来说,是电脑太烂了,可以考虑换台电脑
解决方案八:
引用2楼woairuijuan9的回复:

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

Xml我觉得没得必要,序列化到文件存储的好
解决方案九:
我存哈希和整个datatable,哪个占用量高
解决方案十:
引用8楼pp8403的回复:

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

哈希表是便于查找的!不适合频繁插入,你放入缓存的目的是什么?
解决方案十一:
500条记录把你的内存用完了?需要频繁的虚拟内存交换所以造成的你的CPU利用率高?500条记录用不了多少内存吧,即使一个记录1兆也只有500兆,一般的情况下一个记录1k就很大了,所以这500个记录可能连1兆的内存都没用到,这点内存根本不会给你机器的内存造成负担。而缓存不仅不会加重CPU的负担,反而会大幅减轻CPU的负担,除非你这个缓存太大搞的机器的内存不够用了
解决方案十二:
建议我缓存里面放哈希类型,不用整个datatable存进去,但是换成哈希值和,哈希是二维的,我这个表有很多列数据的,好像又没有多维的数组这个时候怎么办?==================那就用泛型字典嘛Dictionary<TKey,TValue>如果还不够,楼主可以自定义一个二键值对
解决方案十三:
500条?开什么玩笑...你确定CPU负载高跟这个有关系?如果是,你那是什么破服务器啊,得换服务器了...还是好好检查下问题究竟在哪儿吧...
解决方案十四:
引用10楼charles_y的回复:

500条记录把你的内存用完了?需要频繁的虚拟内存交换所以造成的你的CPU利用率高?500条记录用不了多少内存吧,即使一个记录1兆也只有500兆,一般的情况下一个记录1k就很大了,所以这500个记录可能连1兆的内存都没用到,这点内存根本不会给你机器的内存造成负担。而缓存不仅不会加重CPU的负担,反而会大幅减轻CPU的负担,除非你这个缓存太大搞的机器的内存不够用了

具体怎么来?

时间: 2024-07-30 22:46:20

求缓存方案的相关文章

统计分析算法求优化方案--多对多数据集合的包含次数统计

问题描述 统计分析算法求优化方案--多对多数据集合的包含次数统计 两组数据,一组为产品ID,一组为专柜号,一个产品会对应多个专柜号,一个专柜号会对应多个产品ID,统计任意两种产品出现在一个专柜里的次数

如何让App首屏启动更快 -- httpdns持久化缓存方案

首屏启动之痛 对于大部分app而言,首屏启动是最为关键的场景之一,一旦出现阻塞将直接影响到用户体验,为此阿里云httpdns sdk推荐异步接口getIpByHostAsync来获取ip,其大致过程如下: 用户从调用getIpByHostAsync接口大致会经历: 内存缓存检查 ip合法性检查 异步httpdns请求 从流程中可以看出,由于httpdns请求是异步的,对于app首屏场景来说,httpdns可能正在解析途中,app在解析结果返回前会拿到空的ip,转而去做Local DNS解析. 解

red5-小弟最近需要做个直播平台,求架构方案

问题描述 小弟最近需要做个直播平台,求架构方案 类似YY,斗鱼 现在初步定前端FLASH ,用flash的p2p技术,后端用red5 请教有经验的大神,现在主流的架构是怎么样的,包括开发语言,开发IDE,集群方案,已用的开源项目 解决方案 我们也在研究这个,跟我们的方案非常相似,目前还没开始弄. 解决方案二: 我们也想建,但只需1个直播间,最高时20万人同时在线,不知带宽费用要多少?

多表查询求优化方案或思路

问题描述 刚拿到一个需求,需要在一个页面查询11个表,速度会很慢,求好的思路:需求有点类似,一个网站有很多任务,到一个任务详情页要查看他是否满足这些任务,11个任务相关记录在11个表里,查询需要查询11个表,如果网站人数太大访问量太大,会导致页面刷不出来 解决方案 解决方案二:有人遇到类似情况吗?想个好的思路,11个表里的数据还是时事的,所以用中间表的话也需要全部查一下解决方案三:创建一个视图用Unionall关联11个表的相关数据解决方案四:最好还是写好优化的查询语句,然后采用缓存来处理

移动应用开发(IOS/android等)中一个通用的图片缓存方案讲解(附流程图)

在移动应用开发中,我们经常会遇到从网络请求图片到设备上展示的场景. 如果每次都重复发起请求,浪费流量.浪费电量,用户体验也不佳: 将图片持久化到磁盘也不失为一种策略:但每次从文件读取图片也存在一定的io开销,就算采用此策略,我们也需要控制磁盘缓存的容量,以免占用过多系统资源. 其实没有一个方案可以说是完美的方案,只有最适合自己业务需求的方案,才可以说是一个好方案. 我们下面所讲解的方案具备很强的通用性,设计思路简单而清晰: 1.假设每个网络图片的url具有唯一性,如果网络上的图片变化了,会引起输

给企业配置可升级Web缓存方案

无论企业有多大,Web缓存都有助于优化性能和节省带宽.而且如果选择了正确的缓存解决方案,它可以随着企业网络的增长而扩大,而无需进行昂贵且耗时的重建. Web缓存提供了比将访问对象放在Internet Web服务器上更好的方法,它将需要频繁访问的Web页面和对象保存在离用户更近的系统中.当再次访问这些对象的时候加快了速度. 几年以前,理论是超高带宽的Internet连接会使Web缓存毫无用处,但是结果并非如此.即使最快的速率达到30-45Mbps的光纤Internet连接和速度在100 Mbps到

project open 【项目管理】 求中文方案

问题描述 project-open : 开源的免费项目管理方案软件 ,进去后都是英文的.见附件图片!想请教如何可以让样式都为中文! 解决方案 最新版本的支持简体中文啊需要自己设置,官网上有说明http://www.project-open.org/en/developers_localization#how_to_localize

求条码扫描枪方案

问题描述 需求:扫描枪或扫描平台产品上有两个条码,需要分别读取(扫两次,比方说网络产品要扫SKU条码和MAC地址条码)两个条码通常以不同的条码格式编码,如:ENA编码+CODE128编码1.如何实现不遮挡条码扫两次,分别读出两个条码内容?2.有无同时读两组条码的设备?初期思路:使用串口扫描设备扫描产品,根据读取到的条码编码格式识别该条码属于SKU或MAC 解决方案 解决方案二:一般扫码枪上可以设置扫码格式,你可以同时使用两个扫码枪,分别设置不同的条码格式,通过区分串口来读取条码.解决方案三:扫描

给企业配置可升级 Web 缓存方案

无论企业有多大,Web缓存都有助于优化性能和节省带宽.而且如果选择了正确的缓存解决方案,它可以随着企业网络的增长而扩大,而无需进行昂贵且耗时的重建. Web缓存提供了比将访问对象放在Internet Web服务器上更好的方法,它将需要频繁访问的Web页面和对象保存在离用户更近的系统中.当再次访问这些对象的时候加快了速度. 几年以前,理论是超高带宽的Internet连接会使Web缓存毫无用处,但是结果并非如此.即使最快的速率达到30-45Mbps的光纤Internet连接和速度在100 Mbps到