devgeniem/wp-redis-group-cache

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

安装次数: 12,481

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 35

分支: 3

开放问题: 0

类型:wordpress-muplugin

3.1.2 2023-04-27 14:12 UTC

This package is auto-updated.

Last update: 2024-09-20 15:19:24 UTC


README

geniem-github-banner

WP Redis Group Cache

Latest Stable Version Total Downloads Latest Unstable Version License

这个 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/blacklistgeniem/cache/no_group_cache

修改黑名单

如果您想包括一些默认组,如 acftransient,或排除自定义组(例如使用它的插件),您可以使用 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 );

默认排除的组

classes/cache.php

如果应排除组,则进行更具体的选择

您可以使用 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

维护者

@villesiltala

许可证

GPLv3