- A+
WordPress中的对象缓存
对象缓存是一个存储数据库查询结果的过程。然后,您可以在需要时快速检索它们。缓存对象直接从缓存中提供。无需查询数据库。
WordPress 是一种 CMS,它依赖于数据库来存储和检索数据。大量的数据库查询会使服务器充满请求。
数据库服务器过载。结果,您的网站速度很慢。
对象缓存减轻了服务器负载。它提供更快的网页。
您可以使用缓存插件,例如 W3 Total Cache。它被配置为管理 WordPress 缓存。
Redis 概述
Redis是一个开源的内存数据结构存储。它用作数据库、缓存和消息代理。
Redis将数据存储在内存中,而不是磁盘或 SSD。因此,它提供了高性能。
它提供内置复制。您可以将数据放置在更靠近用户的位置以获得最低延迟。
Redis 最初由Salvatore Sanfilippo于 2009 年创建。他曾经改进过一个网络日志分析器。
原型是用 Tcl 编写的,后来被翻译成 C 语言。
Redis 的一些功能包括:
- Redis 持久化
- 内置 Lua 脚本
- 支持多种数据类型
- Redis Pub/Sub(发布和订阅)
- 地理空间支持
- Redis 集群
- Redis 哨兵
Memcached 概述
Memcached 是一个开源的分布式内存缓存系统。
它用于缓存数据库、API 调用和页面渲染。它有助于提高应用程序的速度。Memcached减少了数据库负载。所以你得到一个快速的页面加载时间。
Memcached 最初由Brad Fitzpatrick于 2003 年创建。他将它用于他的网站LiveJournal。它最初是用 Perl 语言开发的,然后被翻译成 C 语言。
Memcached 被以下公司使用:
- YouTube
- 红迪网
- 维基百科
- 推特
Redis 和 Memcached 的相似之处
Redis 和 Memcached 有很多相似的特性。其中一些包括:
- 开源
- NoSQL,内存数据结构
- 提高应用速度
- 亚毫秒延迟
- 数据分区
- 易于开发人员使用
Redis 和 Memcached 都提供毫秒级的响应时间。它们可以比基于磁盘的数据库更快地读取数据。
您还可以获得数据分区。您可以在许多节点上传播数据。当您的流量增加时,它有助于处理数据。
Redis 与 Memcached 比较
1. 扩展和架构
Redis 缩放:
Redis 具有单线程架构。它提供水平缩放。它还具有原生集群支持。
Redis 集群使用主/从架构。每个主节点有两个从节点。它有助于冗余。
如果主节点发生故障,则使用其中一个从节点作为新的主节点。但是,这可能会导致更多的复杂性。您将需要维护许多节点。
Redis 企业版提供企业级集群。它用于多个 Redis 数据库。
Memcached 缩放:
Memcached 是多线程的并且可以垂直扩展。唯一的要求是给它更多的内核和内存。
它可以利用许多处理核心。你可以照顾更多的操作。您所需要的只是扩大容量。
您不必跨节点传播数据。您可以通过添加更多节点来进行水平缩放。然后数据在客户端级别上传播。这种方法执行起来更复杂。
支持的语言:
Redis 和 Memcached 都支持以下语言:
- 爪哇
- Python
- PHP
- JavaScript
- C、C++
- 节点.js
- 红宝石
Memcached 支持的语言比 Redis 少。它确实使用所有流行的语言。
2.数据存储
Redis 提供了许多数据类型和数据结构:
- 细绳
- 放
- 排序集
- 哈希
- 列表
- 二进制安全数据
- HyperLogLogs
- 位数组
Radis 提供的数据结构为大型数据集提供了更大的灵活性。您可以从wp-config.php核心 WordPress 服务器文件中过滤缓存内容。
Memcached 服务器不提供数据类型。它支持只读数据的纯二进制字符串。对于需要较少内存的用例,首选 Memcached。
3. 坚持
Redis 使用永久性磁盘存储。它用于应对中断和网络故障。它使用Snapshots提供数据持久性。使用快照,您可以将时间点数据集存储在磁盘上。它有助于灾难恢复。
Redis 支持两种持久化方式:
- Redis 数据库备份 (RDB) 持久性
- 仅附加文件 (AOF) 持久性
Redis 有助于定期拍摄数据快照。您可以将 Redis 配置为手动或自动创建数据库备份。
Redis 还允许Append Only File 日志。它记录执行的命令和数据更改。您可以重新运行命令来恢复数据集。
Memcached不支持磁盘数据持久化。重启后可能会丢失数据。
4. 复制
复制是从一台服务器到另一台服务器创建数据副本的过程。Redis 提供了一个领导/从属(主从)复制。它创建主实例的精确副本。
如果断开连接,副本会自动重新连接到主节点。副本将执行部分重新同步。它只会复制断开期间丢失的数据。
For high availability, Redis offers Redis Sentinels. It helps prevent failures.
Memcached does not support replication without third-party software. You can use an open-source tool such as Repcached for high availability.
5. Cache Eviction Policies
Redis supports many types of eviction policies. Some of which include:
Policy | Description |
---|---|
no eviction | Returns an error if the memory limit has been reached. |
allkeys-lru | Evicts the least recently used keys. Lru stands for least recently used. |
allkeys-lfu | Evicts the least frequently used keys out of all keys. Lfu stands for least frequently used. |
allkeys-random | Randomly evicts keys or data out of all keys |
volatile lru | Evicts the least recently used keys with an expiration fieldset. |
volatile-lfu | Evicts the least frequently used keys that have an expiration fieldset |
volatile random | Randomly evicts keys that have an expiration fieldset. |
volatile-ttl | Evicts the shortest time to live data with an “expire” fieldset. |
Memcached only offers LRU (least recently used) eviction policy.
Which is better: Redis or Memcached
When deciding what cache to use for WordPress, you need to see your requirements.
Redis is flexible and offers richer functionality. It is also more cost-efficient at scale.
Redis provides more data types. You can have better data operations.
You also get additional features such as real-time geospatial support. If you work with location apps, Redis is a good option. Redis is also the better choice if you need persistence, replication, and advanced features.
Memcached offers simplicity and ease of use for caching. It is multi-threaded and offers better scaling. If you are working with one data type and don’t need persistence, Memcached is a good option.
Conclusion
Memcached and Redis offer NoSQL data management solutions. Both are based on a key-value store data model. They store data in RAM. Data stores are also quite similar. Both offer caching features for low latency.
For simple applications with a single data type, Memcached is a good option. Redis is preferred if you work with complex data-type operations. Redis offers more functionalities and useful commands for keys.
Both the solutions add a functional caching layer for your website.
If you’re looking for a control panel for hosting WordPress, check out CloudPanel.
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫