node 服务器端缓存
内存缓存
直接将数据缓存在服务的内存中
定义一个全局变量来缓存一些需要被频繁读取的信息,从而避免频繁的读取数据库或调用接口
可以选择Map(),WeakMap(), WeakRef等数据类型
此处我们聊一聊WeakMap:
WeakMap 是一个储存弱引用对象的集合,他的key为对象
弱引用:垃圾回收机制不考虑对该对象的引用,如果无其他元素或对象引用,改对象将被回收。
应用场景:
- 以DOM为key,保存该DOM相关数据。优点:当DOM被移除时,对应的WeakMap将随之被回收。
- 用来实现类中的私有属性,用示例话的对象来做key。优点:调示例销毁时,对应的WeakMap私有属性将随之被回收。
- 数据缓存,在不修改原对象的情况下保存某些属性。优点:在源对象销毁时一起被回收
缓存大小
使用内部缓存时注意定义缓存大小,当缓存达到上限时,对数据进行清理。
适应LRU算法来做缓存=> 淘汰最久为使用的缓存对象
采用缓存服务
自己搭建缓存服务
用户 ————> node.js —————> 内存缓存服务 ——————> 后台
<————— (缓存不存在,调后台取) <——————