"计算机科学只有两个难题:缓存失效和命名事物."
菲尔卡尔顿
是否存在使缓存无效的通用解决方案或方法; 要知道某个条目何时过时,所以您可以保证始终获得最新数据?
例如,考虑一个getData()从文件中获取数据的函数.它根据文件的最后修改时间对其进行缓存,每次调用时都会检查该文件.
然后添加第二个函数transformData()来转换数据,并在下次调用函数时缓存其结果.它不知道该文件 - 如何添加依赖关系,如果文件被更改,此缓存将变为无效?
您可以在getData()每次调用时transformData()调用它并将其与用于构建缓存的值进行比较,但这可能最终成本非常高.
在基于Web的应用程序中实现缓存的最佳位置在哪里?
我将使用像memcached或MS Velocity这样的东西.
我只是发现自己编写了如此多的代码来更新业务逻辑层中的缓存,那么在数据库服务器的数据访问层之间创建一个结构来缓存数据会更好吗?
我认为这些复杂性是事实,我们缓存的大部分数据都是用户特定的,我们正在复制缓存中的数据.我们努力寻找最佳解决方案.