Jtti广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >使用PhpFastCache提升您的网站性能
  • 165
分享到

使用PhpFastCache提升您的网站性能

PhpFastCachephp 2023-03-17 13:03:02 165人浏览 佚名
摘要

在本文中,我们将探索PHPFastCache库,该库使您可以在php应用程序中实现缓存。 因此,它有助于改善整体网站性能和页面加载时间。什么是PhpFastCache?PhpFastCache是??一个库,可轻松在PHP应用程序中实现缓存。

在本文中,我们将探索PHPFastCache库,该库使您可以在php应用程序中实现缓存。 因此,它有助于改善整体网站性能和页面加载时间。

什么是PhpFastCache?

PhpFastCache是??一个库,可轻松在PHP应用程序中实现缓存。 这是一个易于使用但功能强大的库,提供了多个api,可帮助您轻松实现自己选择的缓存策略。

不要误以为它只是传统的文件系统缓存方案。 实际上,PhpFastCache支持大量适配器,使您可以从高性能后端(如Memcache,RedismongoDB,CouchDB等)中进行选择。

让我们快速看一下几个最受欢迎的适配器:

  • 文件系统

  • Memcache,Redis和APC

  • CouchDB和MonGoDB

  • Zend磁盘缓存和Zend内存缓存

如果您在上面的列表中找不到适配器的选择,则可以轻松开发一个自定义驱动程序,该驱动程序可以插入系统并轻松工作。

除了基本功能之外,PhpFastCache库还提供了一种事件机制,使您可以响应某些预定义的事件。 例如,当某些内容从缓存中删除时,您可以捕获此事件并刷新或删除相关数据。



在接下来的部分中,我们将介绍PhpFastCache的安装和配置,以及一些示例的演示。

安装与配置

在本节中,我们将介绍PhpFastCache库的安装和配置。 您可以在项目中采用不同的方法来实现此目的。

如果您只是想下载该库的.zip.tar.gz版本而没有太多麻烦,则可以继续从官方网站上获取它。

另一方面,您也可以将其安装为Composer软件包。 那应该是首选方法,因为它使将来的维护和升级变得更加容易。 如果尚未安装Composer,则必须先进行安装。

安装Composer后,让我们继续使用以下命令获取PhpFastCache库。

$composer require phpfastcache/phpfastcache



成功完成该命令后,您应该已建立供应商目录,其中包含运行PhpFastCache库所需的所有内容。 另一方面,如果您缺少PhpFastCache库所需的任何库或扩展,Composer会要求您首先安装它们。

您还应该找到如下所示的文件:

{
    "require": {
        "phpfastcache/phpfastcache": "^6.1"
    }
}

无论您选择安装PhpFastCache库的方式如何,唯一需要做的就是在应用程序中包含autoload.php文件以启动一切。

如果您使用的是基于Composer的工作流,则autoload.php位于供应商目录下。

// Include composer autoloader
require '{YOUR_APP_PATH}/vendor/autoload.php';

在另一方面,如果你已经下载了.zip.tar.gz,autoload.php应提供的src / autoload.php。

// Include autoloader
require '{YOUR_APP_PATH}/src/autoload.php';


有了这些,您就可以开始缓存并获得惊人的PhpFastCache库的好处。 在下一节中,我们将通过几个实际示例演示如何在应用程序中使用PhpFastCache。

示范

我已经提到过,PhpFastCache库在缓存方面支持各种适配器。 在本节中,我将演示如何使用文件系统和Redis适配器。

使用文件适配器缓存

继续并使用以下内容创建file_cache_example.php文件。 我假设您正在使用Composer工作流程,因此供应商目录与file_cache_example.php处于同一级别。 如果您手动安装了PhpFastCache,则可以相应地更改文件结构。

<?php


// Include composer autoloader
require __DIR__ . '/vendor/autoload.php';

use phpFastCache\CacheManager;

// Init default configuration for "files" adapter
CacheManager::setDefaultConfig([
  "path" => __DIR__ . "/cache"
]);

// Get instance of files cache
$objFilesCache = CacheManager::getInstance('files');

$key = "welcome_message";

// Try to fetch cached item with "welcome_message" key
$CachedString = $objFilesCache->getItem($key);

if (is_null($CachedString->get()))
{
    // The cached entry doesn't exist
    $numberOfSeconds = 60;
    $CachedString->set("This WEBsite uses PhpFastCache!")->expiresAfter($numberOfSeconds);
    $objFilesCache->save($CachedString);

    echo "Not in cache yet, we set it in cache and try to get it from cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}
else
{
    // The cached entry exists
    echo "Already in cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}

让我们仔细研究一下每个代码代表什么。 首先显而易见的是包括autoload.php文件并导入我们打算使用的名称空间。

// Include composer autoloader
require __DIR__ . '/vendor/autoload.php';

use phpFastCache\CacheManager;

使用文件缓存时,应该提供用于保存由缓存系统生成的文件的目录路径。 这就是我们在以下代码段中配置的内容。

// Init default configuration for "files" adapter
CacheManager::setDefaultConfig([
  "path" => __DIR__ . "/cache"
]);

当然,我们需要确保缓存目录存在并且可以被Web服务器写入。

接下来,我们实例化缓存对象,并尝试使用welcome_message键加载缓存的项目。

// Get instance of files cache
$objFilesCache = CacheManager::getInstance('files');

$key = "welcome_message";

// Try to fetch cached item with "welcome_message" key
$CachedString = $objFilesCache->getItem($key);

如果该项目在缓存中不存在,我们将其添加到缓存中60秒钟,然后从缓存中显示该项目。 另一方面,如果它存在于缓存中,我们将直接获取它!

if (is_null($CachedString->get()))
{
    // The cached entry doesn't exist
    $numberOfSeconds = 60;
    $CachedString->set("This website uses PhpFastCache!")->expiresAfter($numberOfSeconds);
    $objFilesCache->save($CachedString);

    echo "Not in cache yet, we set it in cache and try to get it from cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}
else
{
    // The cached entry exists
    echo "Already in cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}

这是一个相当容易的设置,不是吗? 实际上,您可以继续运行该文件以检查结果!

首次运行时,应看到以下输出:

Not in cache yet, we set it in cache and try to get it from cache!
The value of welcome_message: This website uses PhpFastCache!

在下一次运行中,输出看起来像这样:

Already in cache!
The value of welcome_message: This website uses PhpFastCache!

这样便可以使用文件系统缓存了。 在下一节中,我们将使用Redis缓存适配器模拟相同的示例。

使用Redis适配器缓存

在继续之前,我假设您已经安装了Redis服务器,并且该服务器正在端口6379上运行,该端口是R??edis的默认端口。

完成设置后,让我们继续创建具有以下内容的redis_cache_example.php文件。

<?php


// Include composer autoloader
require __DIR__ . '/vendor/autoload.php';

use phpFastCache\CacheManager;

// Init default configuration for "redis" adapter
CacheManager::setDefaultConfig([
  "host" => '127.0.0.1',
  "port" => 6379
]);

// Get instance of files cache
$objRedisCache = CacheManager::getInstance('redis');

$key = "welcome_message";

// Try to fetch cached item with "welcome_message" key
$CachedString = $objRedisCache->getItem($key);

if (is_null($CachedString->get()))
{
    // The cached entry doesn't exist
    $numberOfSeconds = 60;
    $CachedString->set("This website uses PhpFastCache!")->expiresAfter($numberOfSeconds);
    $objRedisCache->save($CachedString);

    echo "Not in cache yet, we set it in cache and try to get it from cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}
else
{
    // The cached entry exists
    echo "Already in cache!</br>";
    echo "The value of welcome_message:" . $CachedString->get();
}

如您所见,除了初始化特定于Redis适配器的配置的部分之外,文件几乎相同。

// Init default configuration for "redis" adapter
CacheManager::setDefaultConfig([
  "host" => '127.0.0.1',
  "port" => 6379
]);

当然,如果您正在运行本地主机以外的Redis服务器,则应更改主机和端口设置以符合您的要求。

继续并运行redis_cache_example.php文件以查看其工作方式。 您也可以通过在Redis CLI中检查输出来确认它。

127.0.0.1:6379> KEYS *
1) "welcome_message"

这就是使用Redis适配器所需的全部。 我鼓励您尝试其他适配器及其选项!

结论

今天,我们经历了PHP最受欢迎的缓存库之一-PhpFastCache。 在本文的上半部分,我们讨论了基础知识以及安装和配置。 在本文的后面,我们通过几个示例来演示我们讨论的概念。

希望您喜欢这篇文章,并希望您有动力将PhpFastCache库集成到即将进行的项目中。

--结束END--

本文标题: 使用PhpFastCache提升您的网站性能

本文链接: https://www.lsjlt.com/news/200017.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用PhpFastCache提升您的网站性能
    在本文中,我们将探索PhpFastCache库,该库使您可以在PHP应用程序中实现缓存。 因此,它有助于改善整体网站性能和页面加载时间。什么是PhpFastCache?PhpFastCache是一个库,可轻松在PHP应用程序中实现缓存。 这...
    165
    2023-05-30
    PhpFastCache php
  • PHP使用Memcache技术,提升网站性能的秘诀
    随着互联网的不断发展,网站的访问量日益增加,而各种高并发的情况也随之出现。这时候,网站性能就变得尤为重要。为了能够提升网站的性能,各种技术手段也应运而生。其中,PHP结合Memcache技术是提升网站性能的一种非常有效的方法。本文将为大家介...
    807
    2023-05-30
    PHP Memcache 网站性能优化
  • Vite使用Esbuild提升性能详解
    目录前言初探 Esbuild关键 API - transfrom & buildpluginEsbuild 在 Vite 中的巧妙使用预构建middlewares 中内容转换...
    951
    2023-05-30
    Vite Esbuild性能提升 Vite Esbuild
  • 如何使用JavaScript的Map提升性能
    这篇文章将为大家详细讲解有关如何使用JavaScript的Map提升性能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Map与常规对象有什么不同Map和常规对象主要有2个...
    284
    2023-05-30
    javascript map
  • 如何使用OPCache提升PHP的性能
    目录什么是 OPcache安装 Opcacheab 测试效果配置参考总结参考文档对于 PHP 这样的解释型语言来说,每次的运行都会将所有的代码进行一次加载解析,这样一方面的好处是代码...
    177
    2023-05-30
    使用OPCache 提升PHP性能
  • 如何提升MongoDB的性能
    如何提升MongoDB的性能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1)文档中的_id键推荐使用默认值,禁止向_id中保存自定义的值。...
    580
    2023-05-30
    mongodb
  • MongoDB怎样提升性能
    小编给大家分享一下MongoDB怎样提升性能,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!MongoDB 是高性能数据,但是在使用的过程中,大家偶尔还会碰到一些性能问题。MongoDB和其它关...
    786
    2023-05-30
    mongodb %d mong
  • 怎么提升Web性能
    本篇内容介绍了“怎么提升Web性能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么web性能如此重要真...
    742
    2023-05-30
    web
  • .NET使用Collections.Pooled提升性能优化的方法
    目录简介Collections.Pooled如何使用性能对比PooledList<T>PooledDictionary<TKey, TValue>Pooled...
    174
    2023-05-30
    .net性能优化 .net Collections.Pooled性能优化
  • 怎么提升移动Web性能
    这篇文章主要介绍“怎么提升移动Web性能”,在日常操作中,相信很多人在怎么提升移动Web性能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么提升移动Web性能”的疑惑有所帮...
    342
    2023-05-30
    web
  • 怎么提升JSON.stringify()的性能
    本篇内容介绍了“怎么提升JSON.stringify()的性能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    304
    2023-05-30
    json
  • Instagram中怎么提升PostgreSQL性能
    本篇文章为大家展示了Instagram中怎么提升PostgreSQL性能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 局部索引如果我们经常需要按某个固定的特征...
    437
    2023-05-30
    postgresql instagram
  • python 性能提升之 并行map
    前段时间进行单一目录下10万张图片发送,效果很差,数据积压原来越多。 性能问题提上议程。 采用多线程 多进程 感觉比较繁琐,网上有介绍 map的并行处理的,使用后性能提高明细。 网上介绍map如下 介绍:Map Map是一个很棒的小功能...
    856
    2023-05-30
    性能 python map
  • UITableView性能提升和优化(第
    接上一篇翻译的内容。再次运行测试在重用cell之后,你可以再一次测试滚动性能。从表格3-3可以看出,在你正确重用cell之后,性能提升了一倍。表格 3-3 重用cell之后测试的结果结果显示你的做法是正确的;但是,现在的性能依然不够好。你总...
    637
    2023-05-30
    性能 UITableView
  • python 性能提升的几种方法
    关于python 性能提升的一些方案。 一、函数调用优化(空间跨度,避免访问内存) 程序的优化核心点在于尽量减少操作跨度,包括代码执行时间上的跨度以及内存中空间跨度。 1.大数据求和,使用sum a...
    135
    2023-05-30
    几种方法 性能 python
  • 提升MySQL性能的方法有哪些
    这篇文章主要介绍“提升MySQL性能的方法有哪些”,在日常操作中,相信很多人在提升MySQL性能的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”提升MySQL性能的...
    1165
    2023-05-30
    mysql
  • .NET使用结构体替代类提升性能优化的技巧
    目录前言现实的案例内存占用计算速度总结附录前言 我们知道在C#和Java明显的一个区别就是C#可以自定义值类型,也就是今天的主角struct,我们有了更加方便的class为什么微软还...
    193
    2023-05-30
    .NET性能优化结构体替代类 .NET性能优化
  • Python编程通过懒属性提升性能
    目录为什么需要懒加载如何使用懒加载最后的话懒加载是一种编程范式,它推迟加载操作,直到不得不这样做。通常,当操作开销很大,需要耗费大量时间或空间时,惰性求值是首选实现。例如,在 Pyt...
    586
    2023-05-30
    Python编程 懒属性提升性能 Python性能提升
  • 详解盒子端CSS动画性能提升
    目录流畅动画的标准盒子端动画优化动画性能上报分析研究结论Web 每一帧的渲染优化动画步骤1.精简 DOM ,合理布局2.使用 transform 代替 left、top,减少使用耗性...
    415
    2023-05-30
    css 动画 css 性能提升
  • 香港虚拟主机如何提升性能
    香港虚拟主机提升性能的方法:1、给香港虚拟主机使用磁盘阵列解决I/O瓶颈问题,提高主机数据存取能力;2、需要给香港虚拟主机操作系统分区保留足够的空间,避免出现因空间不足导致速度变慢;3、选择香港虚拟主机时,需要根据自身实际情况合理配置服务器...
    589
    2023-05-30
    虚拟主机 香港虚拟主机
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作