Ruby on rails 4 从Rails中的DB表加载站点导航的性能方法
我一直在开发Rails 4应用程序,我需要将应用程序的主导航存储在DB表中。原因是主导航是一个类别列表。这些类别与其他表关联。我希望我的网站导航是最新的类别列表 我担心的是,应用程序会对每个请求进行DB查询。我想知道是否有一种缓存的方法,但当我更改数据库中的类别时,它仍然无效Ruby on rails 4 从Rails中的DB表加载站点导航的性能方法,ruby-on-rails-4,caching,sqlite,Ruby On Rails 4,Caching,Sqlite,我一直在开发Rails 4应用程序,我需要将应用程序的主导航存储在DB表中。原因是主导航是一个类别列表。这些类别与其他表关联。我希望我的网站导航是最新的类别列表 我担心的是,应用程序会对每个请求进行DB查询。我想知道是否有一种缓存的方法,但当我更改数据库中的类别时,它仍然无效 从表中加载导航而又不被DB查询命中的最佳方式是什么?要避免每次请求都命中DB,请使用memcache或redis缓存结果 然而,缓存是一个巨大的主题,存在许多缓存策略。正如您的问题所提示的,缓存过期是本主题的难点,而不是缓
从表中加载导航而又不被DB查询命中的最佳方式是什么?要避免每次请求都命中DB,请使用memcache或redis缓存结果 然而,缓存是一个巨大的主题,存在许多缓存策略。正如您的问题所提示的,缓存过期是本主题的难点,而不是缓存 说到过期技术,在数据库方面,缓存现在被认为是最佳实践。如果您的数据没有改变(这意味着您不需要担心缓存过期),那么您可能能够通过页面缓存找到出路——如果是这样的话,算您走运吧。如果只是偶尔更改,则操作缓存可能是合适的。否则,我强烈建议将片段缓存用于视图页面的某些部分,并将模型缓存用于单个方法,这些方法在从数据库获取时非常耗时 总的来说,在使用缓存进行性能优化时,先高后低。付出更少的努力,你将获得更大的收获 从高到低,您可以使用的缓存类型有:
- (不缓存服务器,但涉及用户的浏览器通过读取HTTP头在本地缓存内容)
- (memcache)
- (memcache)
- (memcache)或(一种片段缓存)
- (memcache)