devgeniem / wp-redis-group-cache
一个扩展 WordPress Redis 对象缓存的插件,具有分组缓存功能
Requires
- php: >=5.4
- composer/installers: >=1.0.12
This package is auto-updated.
Last update: 2024-09-20 15:19:24 UTC
README
WP Redis Group Cache
这个 WordPress 多站点插件为使用 Redis 对象缓存插件 的网站提供了分组缓存功能。
安装
使用 composer 安装
$ composer require devgeniem/wp-redis-group-cache
或者将其添加到您的 composer.json
{ "require": { "devgeniem/wp-redis-group-cache": "^3.0.0" } }
功能
创建缓存组
为 WP 对象缓存项定义一个组可以同时使一组缓存项失效。有关设置组键的更多信息,请参阅 编码。以下函数通过钩接到 Redis 对象缓存插件来创建对象缓存功能
add_to_group
此函数通过 wp_cache_set
函数与缓存设置钩接。如果为 wp_cache_set
设置了组键,则缓存键将被推送到由组键映射的 Redis 哈希列表中。
delete_from_group
此函数通过 wp_cache_delete
函数与缓存删除钩接。如果为 wp_cache_delete
设置了组键,则指定的项键将从组列表中删除。这确保组只包含实际存在于对象缓存中的键。
使缓存组失效
delete_group
此函数通过首先获取所有键并从 Redis 中删除它们,然后删除组的 Redis 哈希列表来删除与组键相关联的所有数据。
用法
\Geniem\GroupCache::delete_group( $group_key );
排除自定义组或包含默认组进行缓存
Redis 插件自动将所有存储在 WordPress 对象缓存中的数据缓存到 Redis。如果您想修改要存储的组,可以使用两个过滤器 geniem/cache/no_group_cache/blacklist
和 geniem/cache/no_group_cache
。
修改黑名单
如果您想包括一些默认组,如 acf
或 transient
,或排除自定义组(例如使用它的插件),您可以使用 geniem/cache/no_group_cache/blacklist
过滤器来修改黑名单组数组。
function group_cache_blacklist( array $groups ) : array { $groups[] = 'customgroup'; return $groups; } add_filter( 'geniem/cache/no_group_cache/blacklist', 'group_cache_blacklist', 1, 1 );
默认排除的组
如果应排除组,则进行更具体的选择
您可以使用 geniem/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( 'geniem/cache/no_group_cache', 'no_group_cache', 1, 2 );
请注意,这不会禁用初始的键值缓存!
示例
有关使用示例,请参阅此 Github gist。
维护者
许可证
GPLv3