cap-group-oy/redis-group-cache

一个扩展 WordPress Redis 对象缓存的插件,具有分组缓存功能。

此包的官方仓库似乎已不存在,因此该包已被冻结。

安装: 193

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 4

类型:wordpress-muplugin

4.0.0 2021-06-15 07:53 UTC

README

此 WordPress mu 插件为使用 Redis 对象缓存 for WordPress 扩展插件提供了分组缓存功能。

安装

使用 composer 安装

$ composer require cap-group-oy/redis-group-cache

或者将其添加到您的 composer.json

{
  "require": {
    "cap-group-oy/redis-group-cache": "^4.0.0"
  }
}

功能

创建缓存组

为 WP 对象缓存项定义一个组可以实现对一组缓存项的同时失效。有关设置组键的更多信息,请参阅 codex。以下函数通过挂钩 Redis 对象缓存扩展插件来创建对象缓存功能

add_to_group

此函数通过 wp_cache_set 函数挂钩到缓存设置。如果为 wp_cache_set 设置了组键,则缓存键将被推送到由组键映射的 Redis 哈希列表中。

delete_from_group

此函数通过 wp_cache_delete 函数挂钩到缓存删除。如果为 wp_cache_delete 设置了组键,则指定的项目键将从组列表中删除。这确保组中只有实际存在于对象缓存中的键。

使缓存组失效

delete_group

此函数通过首先获取所有键并从 Redis 中删除它们,然后删除组的 Redis 哈希列表来删除与组键相关的所有数据。

用法

\Cap\GroupCache::delete_group( $group_key );

排除自定义组或将默认组包含到缓存中

Redis 扩展插件自动将存储在 WordPress 对象缓存中的所有数据缓存到 Redis 中。如果您想修改要存储的组,可以使用两个过滤器 cap/cache/no_group_cache/blacklistcap/cache/no_group_cache

修改黑名单

如果您想包括一些默认组,例如 acftransient,或者排除自定义组(例如使用它的插件),您可以使用 cap/cache/no_group_cache/blacklist 过滤器来修改黑名单组的数组。

function group_cache_blacklist( array $groups ) : array {
	$groups[] = 'customgroup';
	return $groups;
}
add_filter( 'cap/cache/no_group_cache/blacklist', 'group_cache_blacklist', 1, 1 );

默认排除的组

classes/cache.php

如果应该排除组,进行更具体的筛选

您可以使用 cap/cache/no_group_cache 过滤器直接检查是否应该排除组。注意,这是在黑名单检查之后应用的,因此如果组已经在黑名单上,则不会进行检查。

function no_group_cache( string $group, string $key ) : bool {
    if ( 'no_caching_key' === $group ) {
        return true;
    } else {
        return false;
    }
}
add_filter( 'cap/cache/no_group_cache', 'no_group_cache', 1, 2 );

请注意,这不会禁用初始键值缓存!

示例

请参阅此Github gist以获取使用示例。

维护者

@jaakkolehtonen

许可

GPLv3