yiisoft / cache-db
Yii 缓存库 - 数据库处理器
1.0.0
2023-05-09 18:27 UTC
Requires
- php: ^8.0
- ext-pdo: *
- psr/log: ^2.0|^3.0
- psr/simple-cache: ^2.0|^3.0
- yiisoft/db: ^1.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.6|^10.1
- rector/rector: ^0.16.0
- roave/infection-static-analysis-plugin: ^1.25|^1.30
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.8|^5.8
- yiisoft/cache: ^3.0
- yiisoft/log: ^2.0
Suggests
- yiisoft/log: ^2.0
Provides
This package is auto-updated.
Last update: 2024-09-16 07:47:33 UTC
README
Yii 缓存库 - 数据库处理器
此包实现了基于数据库的 PSR-16 缓存。
支持的数据库
需求
- PHP 8.0 或更高版本。
PDO
PHP 扩展。
安装
可以使用 Composer 安装此包
composer require yiisoft/cache-db
创建数据库连接
更多信息请参阅 yiisoft/db。
数据库准备
包提供了两种准备数据库的方法
-
原始 SQL。您可以使用它与您的应用程序中使用的迁移包一起使用。
-
确保表存在
-
确保没有表存在
-
-
DbSchemaManager
为ensureTable()
、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软件维护。