yiisoft/cache-db

Yii 缓存库 - 数据库处理器

1.0.0 2023-05-09 18:27 UTC

This package is auto-updated.

Last update: 2024-09-16 07:47:33 UTC


README

Yii

Yii 缓存库 - 数据库处理器


Latest Stable Version Total Downloads codecov Mutation testing badge static analysis type-coverage

此包实现了基于数据库的 PSR-16 缓存。

支持的数据库

需求

  • PHP 8.0 或更高版本。
  • PDO PHP 扩展。

安装

可以使用 Composer 安装此包

composer require yiisoft/cache-db

创建数据库连接

更多信息请参阅 yiisoft/db

数据库准备

包提供了两种准备数据库的方法

  1. 原始 SQL。您可以使用它与您的应用程序中使用的迁移包一起使用。

  2. DbSchemaManagerensureTable()ensureNoTable() 方法(默认为 {{%yii_cache}})创建缓存表。

// Create db schema manager
$dbSchemaManager = new DbSchemaManager($db);

// Ensure table with default name
$dbSchemaManager->ensureTable();

// Ensure table with custom name
$dbSchemaManager->ensureTable('{{%custom_cache_table}}');

// Ensure no table with default name
$dbSchemaManager->ensureNoTable();

// Ensure no table with custom name
$dbSchemaManager->ensureNoTable('{{%custom_cache_table}}');

配置

在创建 \Yiisoft\Cache\Db\DbCache 实例时,必须传递数据库连接的实例。

$cache = new \Yiisoft\Cache\Db\DbCache($db, $table, $gcProbability);
  • $db (\Yiisoft\Db\Connection\ConnectionInterface) - 数据库连接实例。
  • $table (string) - 存储缓存数据的数据库表名。默认为 "cache"。
  • $gcProbability (int) - 当在缓存中存储数据时执行垃圾回收(GC)的概率(百万分之一)。默认为 100,表示 0.01% 的机会。此数字应在 0 到 1000000 之间。0 表示不执行任何 GC。

通用用法

除了在 PSR-16 接口中定义的功能外,此包不包含任何与缓存交互的附加功能。

$cache = new \Yiisoft\Cache\Db\DbCache($db);
$parameters = ['user_id' => 42];
$key = 'demo';

// try retrieving $data from cache
$data = $cache->get($key);

if ($data === null) {
    // $data is not found in cache, calculate it from scratch
    $data = calculateData($parameters);
    
    // store $data in cache for an hour so that it can be retrieved next time
    $cache->set($key, $data, 3600);
}

// $data is available here

为了删除值,您可以使用

$cache->delete($key);
// Or all cache
$cache->clear();

为了更高效地处理值,应使用批处理操作

  • getMultiple()
  • setMultiple()
  • deleteMultiple()

此包可以用作 Yii Caching Library 的缓存处理器。

附加日志记录

为了记录有关失败详情,您可以设置一个日志记录实例。它应该是 Psr\Log\LoggerInterface::class。例如,您可以使用 yiisoft\Log

$cache = new \Yiisoft\Cache\Db\DbCache($db, $table, $gcProbability);
$cache->setLogger(new \Yiisoft\Log\Logger());

这允许您记录缓存操作、发生错误等情况。

文档

如果您需要帮助或有任何问题,Yii 论坛 是一个好地方。您还可以查看其他 Yii 社区资源

许可证

Yii 缓存库 - 数据库处理器是免费软件。它根据 BSD 许可证的条款发布。有关更多信息,请参阅 LICENSE

Yii软件维护。

支持该项目

Open Collective

关注更新

Official website Twitter Telegram Facebook Slack