bnomei / kirby3-sqlite-cachedriver
基于SQLite的缓存驱动程序
1.4.2
2021-12-15 20:39 UTC
Requires
- php: >=7.4.0
- getkirby/composer-installer: ^1.1
Requires (Dev)
- getkirby/cms: ^3.5
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^9.5
Suggests
- bnomei/kirby3-boost: Boost the speed of Kirby by having content files of pages (mem-)cached, with automatic unique ID, fast lookup and Tiny-URL.
- bnomei/kirby3-lapse: Cache any data until set expiration time
README
Feather - 一个高性能的Kirby 3 SQLite缓存驱动程序
商业使用
支持开源!
此插件免费,但如果您在商业项目中使用它,请考虑赞助我或捐款。
如果我的工作帮助您赚了钱,那么我觉得我可能也应该得到一点回报,对吧?
做个好人。分享一点。谢谢。
- Bruno
安装
- 解压 master.zip 到文件夹
site/plugins/kirby3-sqlite-cachedriver
或 - 使用
git submodule add https://github.com/bnomei/kirby3-sqlite-cachedriver.git site/plugins/kirby3-sqlite-cachedriver
或 composer require bnomei/kirby3-sqlite-cachedriver
为什么
Memcached < 文件 < Redis < SQLite < APCu
Kirby自带对文件、Memcached和APCu缓存驱动程序的支持。我创建了一个Redis缓存驱动程序,我认为它最适合大缓存。如果您的托管服务不支持Memcached、APCu或Redis,那么您最好的选择就是这个SQLite缓存驱动程序。
2个就足够了,而且大约快35%
让我们想象一个典型的场景:在一个页面浏览过程中,你需要访问100个缓存值。其中一些已经存在,一些不存在,一些需要刷新,还有一些需要删除。使用文件缓存,这至少会导致100次文件系统操作。使用这个SQLite缓存,每个页面浏览只会有1次文件读取和可能1次文件写入,无论你获取、更新或删除多少个值。✌️ 但是将数据写入SQLite不是瞬间的,所以它将至少快35%。
使用方法
缓存方法
$cache = \Bnomei\SQLiteCache::singleton(); // or $cache = feather(); $cache->set('key', 'value', $expireInMinutes); $value = feather()->get('key', $default); feather()->remove('key'); feather()->flush();
基准测试
feather()->benchmark(1000);
sqlite : 0.075334072113037 file : 0.11837792396545
注意:这将创建和删除大量的缓存文件和sqlite条目
调试时无缓存
当Kirby的全局调试配置设置为true
时,整个插件缓存将被清除,并且不会读取任何缓存。但是会创建条目。这将使您的生活更轻松——请相信我。
如何使用Feather与Lapse或Boost
您需要将lapse插件的缓存驱动程序设置为sqlite
。
site/config/config.php
<?php return [ 'bnomei.lapse.cache' => ['type' => 'sqlite'], 'bnomei.boost.cache' => ['type' => 'sqlite'], //... other options ];
设置内容文件缓存
使用Kirby 3 Boost来设置内容文件的缓存。
编译指示
插件自带对SQLite编译指示的默认优化设置,以优化性能。如果需要,您可以在设置中更改这些设置。
设置
依赖项
- PHP SQLite扩展。版本3.7.x或更高。
免责声明
此插件“按原样”提供,不提供任何保证。自行承担使用风险,并在使用之前自己测试它。如果您发现任何问题,请创建新问题。
许可证
强烈不建议在任何推广种族主义、性别歧视、恐同、动物虐待、暴力或任何其他形式仇恨言论的项目中使用此插件。