yii1tech/tagged-cache

为Yii1应用程序提供支持标签的缓存

1.0.0 2023-08-09 13:37 UTC

This package is auto-updated.

Last update: 2024-09-09 16:01:55 UTC


README

Yii1 标签感知缓存扩展


此扩展为Yii1提供了标签感知缓存。

有关许可信息,请检查LICENSE文件。

Latest Stable Version Total Downloads Build Status

安装

安装此扩展的首选方法是通过composer

运行

php composer.phar require --prefer-dist yii1tech/tagged-cache

"yii1tech/tagged-cache": "*"

将其添加到您的composer.json文件的"require"部分。

用法

此扩展为Yii1提供标签感知缓存。标签允许您将缓存项目组织成组,每组可以单独清除。此扩展引入了\yii1tech\cache\tagged\TagAwareCacheContract接口,它扩展了Yii标准的\ICache,在保存数据到缓存时添加了额外的标签指定参数。

应用程序配置示例

<?php

return [
    'components' => [
        'cache' => [
            'class' => \yii1tech\cache\tagged\MemCache::class, // implements `\yii1tech\cache\tagged\TagAwareCacheContract`
            'servers' => [
                [
                    'host' => 'memcache.server',
                    'port' => 11211,
                    'weight' => 100,
                ],
            ],
        ],
        // ...
    ],
    // ...
];

您可以将缓存项目标签列表作为额外参数传递给get()add()方法。例如

<?php

$cacheKey = 'example-cache-key';
$value = Yii::app()->cache->get($cacheKey);
if ($value === false) {
    $value = Yii::app()->db->createCommand('SELECT ...')->query(); // some heave SQL query.
    
    Yii::app()->cache->set(
        $cacheKey, // cache key
        $value, // value to be cached
        3600, // cache expiration
        null, // dependency, empty in our case
        ['database', 'main'] // list of cache tags.
    );
}

您可以使用\yii1tech\cache\tagged\TagAwareCacheContract::invalidateTags()方法清除与特定标签关联的所有缓存项。例如

<?php

Yii::app()->cache->invalidateTags(['database']);

此扩展提供了一些内置的缓存驱动程序,支持标签

请参阅特定存储类以获取更多详细信息。