上图为缓存表的结构,其中items存放缓存的具体内容条目。
上图为缓存条目类型。
Cache函数新建一个缓存表:
添加一个缓存条目流程:
- 新建一个缓存项,加入缓存表。
- 如果新增缓存回调函数不为空,执行回调函数。
- 如果缓存表未设置定时清除或者当前缓存有效时长小于定时清除时长,就跳入失效检查函数进行检查 过期检查函数:
- 先关闭现有的定时器
- 遍历缓存表缓存项,删除过期缓存;找出缓存表中缓存最小的持续时间,设置定时器,并设置最小时间过后缓存删除函数。
4.新增成功
删除缓存流程
- 检查缓存项是否存在
- 执行删除之前回调函数和失效回调函数
- 删除
查找缓存流程
- 查找缓存表,如果缓存存在,更新缓存最新访问时间,访问次数
- 如果不存在,执行加载不存在缓存的回调函数。
github地址:github.com/muesli/cach…