首页 新闻 会员 周边 捐助

数据放到内存 比如:用static静态变量 或者cache[xx] 不叫缓存吗??

0
悬赏园豆:10 [待解决问题]

请教 一个问题,看到一个帖子 https://bbs.csdn.net/topics/391925481 这个里面的版主有句话很有意思,说“把数据放到内存里叫做“缓存”,这是自欺欺人的说法。” 谁解析下,不是把数据放到内存 那是放哪里??现在reds和mache缓存不都是用内存吗??

IDOER的主页 IDOER | 初学一级 | 园豆:19
提问于:2018-05-14 08:48
< >
分享
所有回答(5)
0

你可以看看缓存的定义:

缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹或网络内容缓存等。凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache。

你一直放着的那就叫内存或者变量,不叫缓存。

比如,家里有个区域专门放垃圾,定期清空,那个就是垃圾缓存,你不能把家里所有放准备当成垃圾的地方都叫垃圾缓存吧?

爱编程的大叔 | 园豆:30844 (高人七级) | 2018-05-14 09:39

举例:我数据库里有个系统导航菜单表,我用static静态变量存起来,每个 页面加载菜单都判断如果这个变量不为空 就读取这个静态变量,如果为null,在读取数据库菜单表,同时后台修改菜单的时候 清空这个static变量,下次重新读取数据库然后再缓存,这算不算缓存???

支持(0) 反对(0) IDOER | 园豆:19 (初学一级) | 2018-05-14 09:44

@efreer: 

1、纠结这个一点意义都没有。算又怎样,不算又能怎样?

2、你需要知道的只是缓存能起到什么样的作用。至于数据库慢,大家都知道的,谁没事整天问数据库要一个不会变化的数据,当然是一次读取放到内存了,不是静态的变量用单例变量也行,叫不叫缓存有关系么?

3、一般意义上的(或者严格意义上)的缓存,是指在运行过程中,会有变化,有更新的,如果非要严格说。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30844 (高人七级) | 2018-05-14 09:51
0

缓存作用是什么,减少和加快直接访问。对于编程而言,什么访问最快,首先是内存,次之是本地硬盘,这就是二级缓存。缓存不是是垃圾?当然不是,缓存是快速访问的副本。

TCG2008 | 园豆:1150 (小虾三级) | 2018-05-14 09:56
0

通常就是一个本本身更快的“副本”,不限于任何存储介质。

花飘水流兮 | 园豆:13615 (专家六级) | 2018-05-14 11:15
0

不能说用static静态变量就是缓存,但是static变量确实可以实现缓存。

龙行天涯 | 园豆:1794 (小虾三级) | 2018-05-15 15:51
0

在现在编程中,正在运行的程序中使用的变量都叫缓存。不在本程序中运行的变量都不叫缓存,比如数据库中的数据,即便是运用的缓存的机制,也不能称为缓存,因为不在本程序中运行。

贪心狸猫 | 园豆:872 (小虾三级) | 2018-05-18 18:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册