bnomei/kirby3-sqlite-cachedriver

基于SQLite的缓存驱动程序

1.4.2 2021-12-15 20:39 UTC

This package is auto-updated.

Last update: 2024-09-17 19:49:48 UTC


README

Release Downloads Build Status Coverage Status Maintainability Twitter

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或更高。

免责声明

此插件“按原样”提供,不提供任何保证。自行承担使用风险,并在使用之前自己测试它。如果您发现任何问题,请创建新问题

许可证

麻省理工学院(MIT)

强烈不建议在任何推广种族主义、性别歧视、恐同、动物虐待、暴力或任何其他形式仇恨言论的项目中使用此插件。