首先,请允许我说我对rails很新,已经使用了它几天。
我的第一个应用程序与传统应用程序略有不同:在我的一个模型类中,我有从数据库中提取的部分数据,以及通过对外部资源执行HTTP REST请求而获取的其他部分。
我已经为“外部”资源实现了延迟加载,但是,每次用户点击需要与该资源相关联的字段之一的页面时,我会重新执行HTTP请求,这显然无法扩展
我的问题是:您认为哪种缓存策略对此方案有价值?如何只为通过HTTP延迟加载的数据设置缓存?我想实现一个缓存,它可以按时间(比如说5分钟)到期,或者当用户执行一个应该使当前缓存无效的操作时。
如何实现它以及保留这些缓存的内存权衡?将数据保存在会话上还是服务器上的单独结构上是否可取?我应该考虑其中一个外部缓存框架,如GigaSpaces等......?
提前感谢您提供此问题的任何提示。
答案 0 :(得分:1)
我建议采用以下两种策略之一:
我建议使用第一个,因为坦率地说,否则您将根据请求对数据库进行多次读写操作,从而产生显着的性能成本。
此外,这个问题可能适用于Ruby on Rails以外的东西 - 很多场景都涉及来自某些外部源的缓存。