rhubarbgroup/redis-cache

WordPress 的持久化对象缓存后端,由 Redis 提供。支持 Predis、PhpRedis、Relay、复制、哨兵、集群和 WP-CLI。

安装数: 72,344

依赖项: 1

建议者: 0

安全: 0

星标: 430

关注者: 24

分支: 149

开放问题: 8

类型:wordpress-plugin


README

由 Redis®¹ 提供支持的持久化对象缓存后端。支持 PredisPhpRedis (PECL)Relay、复制、哨兵、集群和 WP-CLI

Redis Object Cache screenshots

对象缓存专业版

一款 商业级 Redis®¹ 对象缓存后端。真正可靠,高度优化,完全可定制,并在最需要时提供专属工程师支持。

  • 重写以提高原始性能
  • 100% 遵守 WordPress API
  • 更快的序列化和压缩
  • 易于调试和记录
  • 缓存预取和高级分析
  • 完全单元测试(100% 代码覆盖率)
  • 针对 WooCommerce、Jetpack 和 Yoast SEO 优化
  • 还有更多...

安装

要开始,请参阅 安装说明

常见问题解答 & 故障排除

常见问题的答案和常见错误的故障排除信息可以在 常见问题解答 中找到。

配置

Redis 对象缓存插件附带大量配置选项。如果您不确定如何使用它们,请阅读 安装说明

高级配置选项
不受支持的 配置选项

存在,但 不应该 存在,可能在未来的版本中未经通知而损坏,并且将不会从我们的团队获得任何支持

连接

通过 Unix 套接字连接
define( 'WP_REDIS_SCHEME', 'unix' );
define( 'WP_REDIS_PATH', '/var/run/redis.sock' );
通过 TCP+TLS 连接
define( 'WP_REDIS_SCHEME', 'tls' );
define( 'WP_REDIS_HOST', 'master.ncit.ameaqx.use1.cache.amazonaws.com' );
define( 'WP_REDIS_PORT', 6379 );

可以使用 WP_REDIS_SSL_CONTEXT 定义连接的附加 TLS/SSL 流连接选项

define( 'WP_REDIS_SSL_CONTEXT', [
    'verify_peer' => false,
    'verify_peer_name' => false,
]);
使用 ACL 认证连接
define( 'WP_REDIS_PASSWORD', [ 'username', 'password' ] );

扩展

Redis 对象缓存为具有 Redis 和 PHP 高级技术知识的用户提供各种复制、分片、集群和哨兵设置,这些用户已查阅了 PredisPhpRedisRelay 的文档。

Relay

Relay 是一种下一代缓存,它将 Redis 数据集的部分副本保留在 PHP 的内存中,以实现极快的查找,尤其是在 Redis 服务器不在与 WordPress 同一台机器上时。

define( 'WP_REDIS_CLIENT', 'relay' );

define( 'WP_REDIS_HOST', '127.0.0.1' );
define( 'WP_REDIS_PORT', 6379 );

// when using Relay, each WordPress installation
// MUST a dedicated Redis database and unique prefix
define( 'WP_REDIS_DATABASE', 0 );
define( 'WP_REDIS_PREFIX', 'db3:' );

// consume less memory
define( 'WP_REDIS_IGBINARY', true );
复制

https://redis.ac.cn/docs/management/replication/

define( 'WP_REDIS_CLIENT', 'predis' );

define( 'WP_REDIS_SERVERS', [
    'tcp://127.0.0.1:6379?database=5&role=master',
    'tcp://127.0.0.2:6379?database=5&alias=replica-01',
] );
分片

这是一个针对 PhpRedis 的特定功能,使用 RedisArray

define( 'WP_REDIS_CLIENT', 'phpredis' );

define( 'WP_REDIS_SHARDS', [
    'tcp://127.0.0.1:6379?database=10&alias=shard-01',
    'tcp://127.0.0.2:6379?database=10&alias=shard-02',
    'tcp://127.0.0.3:6379?database=10&alias=shard-03',
] );
Redis 哨兵

https://redis.ac.cn/docs/management/sentinel/

define( 'WP_REDIS_CLIENT', 'predis' );

define( 'WP_REDIS_SENTINEL', 'my-sentinel' );
define( 'WP_REDIS_SERVERS', [
    'tcp://127.0.0.1:5380',
    'tcp://127.0.0.2:5381',
    'tcp://127.0.0.3:5382',
] );
Redis 集群

https://redis.ac.cn/docs/management/scaling/

define( 'WP_REDIS_CLIENT', 'phpredis' );

define( 'WP_REDIS_CLUSTER', [
    'tcp://127.0.0.1:6379?alias=node-01',
    'tcp://127.0.0.2:6379?alias=node-02',
    'tcp://127.0.0.3:6379?alias=node-03',
] );

WP CLI 命令

Redis 对象缓存具有各种 WP CLI 命令,有关更多信息,请运行 wp help redis

动作 & 过滤器

Redis 对象缓存具有各种钩子,下面列出了常用的一些。

脚注

¹ Redis是Redis Ltd的注册商标。其中任何权利均归Redis Ltd所有。Redis Object Cache的使用仅作参考,并不表示Redis与Redis Object Cache之间存在任何赞助、认可或隶属关系。