paneidos/laravel-tagged-cache

在缓存上强制使用标签,允许您共享memcache实例。

v1.3.0 2020-09-19 17:52 UTC

This package is auto-updated.

Last update: 2024-09-20 02:57:26 UTC


README

build status

Laravel 标签缓存

在缓存上强制使用某个标签。

为什么我需要这个功能?

如果您为多个项目/租户使用相同的Memcache服务器,可能很难仅清除其中一个的缓存。唯一的选择是清除整个缓存。使用Laravel内置的TaggableStore,您可以为单个项目/租户清除缓存。

它是如何工作的?

标签缓存驱动器是另一个缓存驱动器的简单包装。所有常规缓存键访问,例如getputremember,都被强制使用tags方法并包含指定的标签。其他特殊方法,如lock,则原样传递。

安装

要开始使用Laravel标签缓存,请使用Composer将包添加到项目的依赖中

composer require paneidos/laravel-tagged-cache

配置

在您的config/cache.php中指定一个标签存储

return [
    'stores' => [
        'memcache-tagged' => [
            'driver' => 'tagged',
            'backend' => 'memcache',
            'tag' => 'project_name',
        ],
        'memcache' => [
            // ...
        ],
        // ...
    ],
];

示例:替换您的默认存储

return [
    'default' => 'tagged',
    
    'stores' => [
        'tagged' => [
            'driver' => 'tagged',
            'backend' => env('CACHE_DRIVER', 'array'),
            // Use the database name as the forced tag
            'tag' => env('DB_DATABASE', 'none'),
        ],
        // ...
    ],
];

兼容性

目前与Laravel 5.6及以上版本兼容。后端可以是任何支持标签的存储。注意:文件存储不支持标签。

开发

# Install dependencies
composer install
# Run tests
composer test
# Run tests & report coverage
composer test -- --coverage-text

贡献

发送一个pull request,确保您为新的代码提供了测试覆盖率。

许可证

Laravel 标签缓存在MIT许可证下授权。