缓存有关的问题
1缓存可以存在哪些地方?
l 游览器
l 游览器和App之间
l 分层过的APP
l 数据库
2所有的数据都可以缓存吗?
缓存一段时间内不变的数据
3缓存有哪些属性?
命中率:请求缓存次数和缓存返回正确结果次数的比例.比例越高,就证明缓存的使用率越高。
最大元素:缓存中可以存放得最大元素得数量,一旦缓存中元素数量超过这个值,那么将会起用缓存清空策略。
清空策略:
l FIFO最先进入缓存得数据在缓存空间不够情况下(超出最大元素限制时)会被首先清理出去
l LFU一直以来最少被使用的元素会被被清理掉
l LRU最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。
缓存介质:内存和硬盘
内存:将缓存放在内存中是最快的选择,任何程序直接操作内存都比操作硬盘要快的多, 但是如果你的数据要考虑到break down的问题,因为放在内存中的数据我们称之为没有持久话的数据。
硬盘:一般来说,很多缓存框架会结合使用内存和硬盘,比如给内存分配的空间有满了之后,
会让用户选择把需要退出内存空间的数据持久化到硬盘.当然也选择直接把数据放一份到硬盘。
数据库:可以使用数据库进行缓存