问题标签 [page-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cakephp - 可以使用 APC 进行全页缓存吗?(CakePHP)
我使用整页缓存缓存了我的网站。因此,对于每个页面,都会创建一个 html 文件。
当我使用 CakePHP 时,我可以定义将使用 APC 缓存而不是文件缓存。但是,如果这样做,仍然会创建 html 文件(APC 已正确安装)。
所以问题:将APC与整页缓存一起使用是否有任何逻辑?它有什么好处吗?是否可以以某种方式将缓存的 html 文件放入 RAM 并在需要时从那里读取?
PS 我不是在谈论 APC 操作码缓存功能。只是数据缓存。
ruby-on-rails - Devise redirect after login or logout doesn't work with Rails page caching
I'm using Devise for authentication in my Rails app on Heroku.
I have redirects after login and logout setup the way it's suggested to do so in the Devise wiki. (https://github.com/plataformatec/devise/wiki/How-To:-Redirect-back-to-current-page-after-sign-in,-sign-out,-sign-up,-update)
application_controller.rb:
The redirects work fine until I enable page caching with code like this:
I'm 99% sure that store_location isn't ever being called because the way page caching works in Rails the application controller would never even be reached because Rack serves the static HTTP without touching Rails.
Does anyone have any ideas about how I can take advantage of Rails page caching while also having my redirects after login/logout work correctly for Devise?
Thanks for any help.
linux - 在 Linux 中从 bio 结构访问缓冲区数据
我正在研究一个 Linux 内核模块,该模块要求我在将数据写入本地磁盘之前检查数据。要写入的数据是从远程磁盘获取的。因此,我知道 fetch 中的数据存储在页面缓存中。我还知道 Linux 有一个数据结构,可以管理运行中的块 I/O 请求,称为 bio 结构。
bio 结构包含一个称为 bio_vecs 的结构列表。
它有一个列表,因为内存中的块表示可能在物理上不连续。我想要做的是使用 bio_vecs 列表抓取缓冲区的每一块并将它们放在一起,以便我可以获取块的 MD5 哈希。如何使用指向页面的指针、缓冲区的长度及其偏移量来获取缓冲区中的原始数据?是否已经有此功能,还是我必须自己编写?
linux - Page cache limit
I'm using Ubuntu with kernel 3.2.1, x86_64. I'm trying to benchmark a file system, and I want to limit the page cache size to avoid the file system cache taking up too much RAM, which would obviously improve performance (but would not reflect the results on systems with less memory).
Is there a way to do that? I've seen an option in some RHEL distribution for tuning /proc/sys/vm/pagecaches which seems to satisfy this, but I dont see anything useful in Ubuntu except dirty_background_ratio, which will only trigger flushing to disk, not more caching (so I can get a lot more sync I/O etc)
Thank you
nginx - 如何先配置 nginx 到 try_files,如果不存在,请按照 request_uri
我们有带有 id 分区和子域的页面缓存。说对于ny.site.com/cat/12345
or之类的请求la.site.com/dog/234
,nginx 需要
- 检查文件是否
/cat/ny/1234/5.html
存在,返回它 - 否则,直接用原来
request_uri
的打app server,缓存文件就创建好了
我们设法找出了子域和 id 分区部分,但在 try_files 部分没有得到任何运气。总是会出现无限循环错误,例如rewrite or internal redirection cycle while internally redirecting to
我们的 nginx.conf 文件就像
有什么提示吗?谢谢!
更新: 我尝试了以下。Nginx 在文件系统中寻找 $request_uri(例如,/cat/12345)而不是访问应用服务器。有什么想法吗?
ruby-on-rails - Rack::Cache 和页面缓存的区别
我们目前正在更新我们的网站,我负责选择/设计我们的缓存策略。
我们的网站都是基于文章的杂志网站,但其中一些网站有一个用户系统,用于需要订阅的受限文章。
到目前为止,我们已经使用了一些 javascript 的页面缓存(并将页面存储在 memcached 中)。但是我认为 Rack::Cache 或者 Varnish 现在是一个更好的解决方案。据我所知,它在性能方面的工作方式几乎相同:
- 页面缓存,将整个页面缓存在 memcached 中,此缓存将在未来请求时由 nginx 直接从 memcached 提供。
- Rack::Cache,也将整个页面缓存在 memcached 中,因为缓存的版本是由网络服务器而不是 nginx 提供的。Rack::Cache 使用 HTTP 缓存标头,这意味着访问者还将在浏览器中存储本地缓存。此外,用同样使用 HTTP 缓存标头的 Varnish 替换它是否容易。
到目前为止我是对的,还有其他人对这两种策略的差异或表现有一些评论吗?也可以同时使用两者,但我可以看到这种方法的任何优势,因为它们将缓存相同类型的页面。
codeigniter - Codeigniter 输出缓存:被调用的控制器函数的哪些部分被执行?
缓存的主要目的之一是节省资源,而不是像每次请求都访问数据库这样的事情。鉴于此,我对所有 Codeigniter 在遇到cache()
语句时在控制器中所做的事情感到困惑。
例如:
我意识到缓存的main/index
html 文件将在接下来的 5 分钟内显示,但是在这 5 分钟内控制器是否仍会执行该get_data_from_database()
步骤?还是会跳过它?
注意:Codeigniter 文档说您可以将cache()
语句放在控制器函数中的任何位置,这让我更加困惑于执行了什么。
ruby-on-rails - 单击“返回”按钮时不会触发更改前事件
环境:
rails4.01 + turbolinks2.0 + jquery
浏览器:
Chrome、Safari 7.0
目标:
当用户更改表单页面中的内容并离开(未保存)时,我会提示他们。
我的解决方案
问题:
当我点击浏览器页面中的其他链接时,它运行良好。如果我单击属于浏览器的“返回”按钮,page:before-change
则不会触发,在这种情况下如何解决问题。
html - 如何强制所有浏览器不存储您网站的缓存?
当你处于开发阶段时,不断提醒你的客户清除缓存或要求他们“刷新页面一堆”有点尴尬。
作为开发人员,我是否可以在 nginx 中设置或作为 HTML 中的元标记来强制所有浏览器停止缓存我的页面?
caching - 页面缓存堆积并在其他节点上强制分配内存
我目前正在使用 NUMA 机器。我遇到了一个问题,当我执行磁盘 I/O 时,缓存的页面开始堆积在当前节点(节点 0)中。而当我进一步malloc
新的记忆时,他们去了另一个节点(节点1),导致性能不佳。
我正在考虑两种可能的解决方案,但不知道它们是否有效。
(1)numa_alloc_onnode()
在节点 0 上使用。但我不确定这是否会覆盖节点 0 中的页面缓存或仍会转到节点 1。
(2) 缓存节点 0 开始堆积时丢弃(节点 1 中的缓存不应该丢弃,因为它们很有用)。但我不知道该怎么做。