"计算机科学只有两个难题:缓存失效和命名事物."
菲尔卡尔顿
是否存在使缓存无效的通用解决方案或方法; 要知道某个条目何时过时,所以您可以保证始终获得最新数据?
例如,考虑一个getData()从文件中获取数据的函数.它根据文件的最后修改时间对其进行缓存,每次调用时都会检查该文件.
然后添加第二个函数transformData()来转换数据,并在下次调用函数时缓存其结果.它不知道该文件 - 如何添加依赖关系,如果文件被更改,此缓存将变为无效?
您可以在getData()每次调用时transformData()调用它并将其与用于构建缓存的值进行比较,但这可能最终成本非常高.