在 Orchard 站点中,输出缓存可以在模块更新期间保留吗?
In an Orchard site, can the output cache be preserved during module updates?
该站点有 7,000 多页内容。当大多数页面都被缓存时,站点可以可接受地处理其流量。例如,当为模块部署代码更新时,缓存会被刷新。 (这也可能发生在其他一些事件中,例如服务器重启或应用程序池被回收。)
网站被搜索引擎蜘蛛攻击,搜索引擎蜘蛛会重新编制网站索引,检查它知道的所有页面,并触发为所有页面重建缓存的过程。这将 CPU 固定在 90% 到 98% 之间,并导致网站对所有页面请求的响应缓慢。
有没有办法通过重建或重启来保留输出缓存中的内容?
是的,虽然它需要您使用外部缓存服务器,例如 Redis
。默认缓存提供程序使用内存存储,当应用程序池重新启动时,它总是会被重置。最新的 Orchard 版本通过 Orchard.Redis
核心模块支持开箱即用的 Redis。
以上内容适用于业务缓存 (ICacheService
) 以及输出缓存。
该站点有 7,000 多页内容。当大多数页面都被缓存时,站点可以可接受地处理其流量。例如,当为模块部署代码更新时,缓存会被刷新。 (这也可能发生在其他一些事件中,例如服务器重启或应用程序池被回收。)
网站被搜索引擎蜘蛛攻击,搜索引擎蜘蛛会重新编制网站索引,检查它知道的所有页面,并触发为所有页面重建缓存的过程。这将 CPU 固定在 90% 到 98% 之间,并导致网站对所有页面请求的响应缓慢。
有没有办法通过重建或重启来保留输出缓存中的内容?
是的,虽然它需要您使用外部缓存服务器,例如 Redis
。默认缓存提供程序使用内存存储,当应用程序池重新启动时,它总是会被重置。最新的 Orchard 版本通过 Orchard.Redis
核心模块支持开箱即用的 Redis。
以上内容适用于业务缓存 (ICacheService
) 以及输出缓存。