cap-group-oy / redis-group-cache
一个扩展 WordPress Redis 对象缓存的插件,具有分组缓存功能。
此包的官方仓库似乎已不存在,因此该包已被冻结。
Requires
- php: >=5.6
- composer/installers: ^1.0
- wpackagist-plugin/redis-cache: ^1.6.3
This package is not auto-updated.
Last update: 2023-01-17 12:47:01 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/blacklist
和 cap/cache/no_group_cache
。
修改黑名单
如果您想包括一些默认组,例如 acf
或 transient
,或者排除自定义组(例如使用它的插件),您可以使用 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 );
默认排除的组
如果应该排除组,进行更具体的筛选
您可以使用 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以获取使用示例。
维护者
许可
GPLv3