Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 混合Rails缓存选项,我是在重新发明什么吗?_Ruby On Rails_Performance_Caching - Fatal编程技术网

Ruby on rails 混合Rails缓存选项,我是在重新发明什么吗?

Ruby on rails 混合Rails缓存选项,我是在重新发明什么吗?,ruby-on-rails,performance,caching,Ruby On Rails,Performance,Caching,不过,这并不是真正的改造,我们有一个大型的基于内容的网站,它可以在一定程度上处理负载(在我们解决了SQL池问题之后),然后我们就没有动力了。这在很大程度上是由于我们正试图修复的错误代码,但也有很大一部分是由于请求的级别等原因 我们正在考虑页面缓存,因为它非常快(是的…:D),但这不起作用,因为页面中有特定于登录用户的某些片段。但是,并不是所有的希望都失去了 我想知道做以下工作是否理想: 页面级缓存,在内容更新时使用清理器清理页面 将特定于用户的片段替换为占位符(可能还有诸如“查看您的帐户,或在此

不过,这并不是真正的改造,我们有一个大型的基于内容的网站,它可以在一定程度上处理负载(在我们解决了SQL池问题之后),然后我们就没有动力了。这在很大程度上是由于我们正试图修复的错误代码,但也有很大一部分是由于请求的级别等原因

我们正在考虑页面缓存,因为它非常快(是的…:D),但这不起作用,因为页面中有特定于登录用户的某些片段。但是,并不是所有的希望都失去了

我想知道做以下工作是否理想:

  • 页面级缓存,在内容更新时使用清理器清理页面
  • 将特定于用户的片段替换为占位符(可能还有诸如“查看您的帐户,或在此处注册”之类的通用内容)
  • 当用户页面加载时,发出一个异步请求(AJAX,或者,有些人称之为AJAH),请求“动态”片段,然后用该片段放置内容占位符
  • 我看到的主要问题是,关闭JS的用户看不到内容,但我真的不认为我们会受到太大的影响,而且大部分禁用javascript的人都是白痴(是的,我说了!)

    我也很想知道我是否(毫无疑问)在重新创造一些东西,如果有人能给我指出一个已经在做类似事情的网站,我将不胜感激


    谢谢你这么棒的社区

    Ryan Bates在文章中介绍了这项技术。值得一看。

    您考虑过服务器端片段缓存吗?我已经广泛地使用了它,它再好不过了。您可以简单地缓存内容“片段”,并根据登录用户正常呈现任何内容

    有很多很好的片段缓存资源,我从文档开始:

    缩放导轨系列也非常好:

    当服务静态内容或缓存内容开始减慢服务实际工作流程时,请将反向代理作为应用程序的前端。它将释放进程来执行实际工作,并减少由于文件系统缓存变得低效而导致的速度减慢。它将帮助您使“客户端缓存”可供多个访问者共享。看一看NewRelic关于缓存和扩展的精彩的screen cast系列:

    这是一种有效的技术,但值得指出的是片段缓存给你带来的好处不如动作缓存或页面缓存。真相,真相,只是想确保它被考虑。是的,这是一种非常酷的技术。此外,您可以将长时间运行的数据库工作负载拆分为单独的ajax请求,以便工作负载并行化。我们在一个应用程序中做到了这一点,它真的开始飞起来了。当然,我想这周我的大脑太兴奋了。。为什么我不先看看铁路司机?!?啊,谢谢!