WordPress网站上的数据库负载比较大如何解决

发布时间:2021-11-02 20:41

wordpress文章数量随着更新的变多,慢慢的我们会发现负载会变得比较高,发布新文章或者,登录后台,搜索文章都很变慢了,如何有效的解决这种问题呢?给大家分享一个我一直在用的工具:Memcached。

Memcached 是一个免费和开源、高性能、分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序。Memcached 是一种内存键值存储,用于存储来自数据库调用、API 调用或页面渲染结果的任意小块数据(字符串、对象)。

工作原理:

每次访问者/浏览器请求需要数据库处理和响应的服务器时,都会给服务器增加负载。Memcached 通过将数据对象存储在临时动态内存中来减少负载。它将数据保存在键值上并在将浏览器的请求发送到数据库之前检查其内存。如果存在缓存,它会在不涉及要处理的数据库的情况下回复请求。

如上所述,Memcached 是一个分布式内存对象缓存系统,由四个主要组件组成:

客户端软件:接收分布式可用 Memcached 服务器的列表。

基于客户端的哈希算法:根据键值选择服务器。

服务器软件:将数据(值)和键存储到内部哈希表中。

服务器算法:确定何时删除旧数据并重用内存。

上述组件允许 Memcached 存储和检索数据。每个项目包括一个:

键值

到期时间

原始数据

当一个项目被请求时,Memcached 会在回复请求之前验证它的过期时间以查看该项目是否仍然有效。如果缓存不存在,它会将请求发送到数据库以处理结果并将结果存储为一个项目。如果服务器内存不足,它会查找并替换过期的项目。如果它仍然需要任何信息,它会查找特定时间段内未请求的项目。通过这种方式,Memcached 将更多最近请求的信息保存在动态内存中。

高级 Memcached 工作如下:

Memcached 检查请求的数据是否存储在缓存中。

两种可能的输出:– 数据存储在缓存中:在不中断数据库的情况下从 Memcached 返回请求的数据。– 数据不存储在缓存中:执行请求的查询,处理和检索数据,并将结果保存在内存中。

每当项目有更新或项目过期时,Memcached 都会更新其缓存并确保将新鲜内容传送到请求的客户端。

Memcached使用方法:

Memcached 不需要很多 CPU 资源。它完全依赖于内存。如果您有 8GB 内存的 Web 服务器,但操作系统和您的网站仅消耗 4GB,那么最好将剩余的内存分配给 Memcached 实例以增加其存储容量。 在此处阅读所有技术要求。

Memcached 适用于大多数基于 Linux 的服务器,安装 Memcached 只需两个 Linux 命令即可。通常,您应该从操作系统(Debian、Ubuntu 等)提供的软件包中安装 Memcached。操作系统将为您解决依赖关系并负责安全更新。

对于 Debian 或 Ubuntu 用户:

命令:apt-get install memcached

对于 Redhat/Fedora:

命令:yum install memcached

有关更多信息,请参阅您各自操作系统的文档。值得一提的是,最流行的反向代理服务器之一 Nginx 预装了 Memcached 模块,提供了最灵活的 Nginx Memcached 捆绑解决方案。

注:如果是宝塔用户,可以直接在软件商店中,进入 PHP 的设置选项,在【安装扩展】选项卡进入安装即可:

WordPress纯代码实现文章相关推荐功能 WordPress

WordPress纯代码实现文章相关推荐功能

这两天准备把的相关推荐功能进行了重写,将原来的文章相关推荐功能做了自我感觉非常优秀的改进,相比用其它 WordPress 相关文章推荐的插件来说,我更喜欢自己来折腾,经过这一番的重写 WordPres...