海外社媒SNS代运营Tiktok代运营公司
Revive Old Posts

营销型WordPress外贸多语言独立站建设+谷歌SEO优化+谷歌关键字广告投放,就找WP花园!深圳公司,技术实力雄厚,用效果说话!详情咨询info@wordpresshy.com

缓存对于实现高性能和可扩展性至关重要。 从开发阶段就实施正确的缓存策略对于避免滞后的 API 和缓慢的页面加载时间至关重要。 Laravel 是最流行的 PHP 框架之一,因此实现最佳的 Laravel 缓存策略对于更好的用户体验和更大的业务影响是必不可少的。

在本文中,我们将探讨在 Laravel 中实现和操作缓存的策略。 您将了解 Laravel 缓存的工作原理、几个 Laravel 缓存查询,以及如何处理 Laravel 应用程序上的缓存。

如果您已经掌握了以下方面的基本知识,您将从本文中获得更多信息:

让我们潜入吧!

为什么缓存很重要?

随着最近互联网业务的蓬勃发展,不同公司的统计数据显示网站加载时间和低性能如何在没有缓存的情况下严重影响 SEO、用户参与度和对话率。 这从一个出色的缓存策略开始。

一项在线研究发现,“1 秒的加载延迟时间将使亚马逊每年损失 16 亿美元的销售额。”

海外社媒SNS代运营Tiktok代运营公司

谷歌的另一项研究报告说:“我们的研究表明,如果搜索结果慢了几分之一秒,人们的搜索就会减少(严重的是:A 400ms 延迟 导致一个 下降 0.44% 在搜索量,数据迷)。 这种不耐烦不仅限于搜索:如果视频在加载时停顿,五分之四的互联网用户会点击离开。”

您的网页加载时间稍有迟缓可能会对您的用户体验产生巨大影响并导致资金损失。

什么是 Laravel 缓存?

Laravel 提供了一个健壮且易于使用的缓存和不同缓存后端的实现。 使用 Laravel 缓存,您无需编写任何代码即可在多个缓存引擎之间高效切换。

您可以在 Laravel 缓存中找到配置 config/cache.php 文件夹,尽管您可能只需要 .env 文件以在不同的缓存后端之间切换。

Laravel 缓存还提供了许多实用的方法,我们可以使用它们来实现不同的缓存策略。

对于任何更关心高性能和可扩展性的人来说,缓存是软件开发过程的重要组成部分。 📈 在这里深入了解您需要了解的有关 Laravel 缓存的所有信息 🚀点击推文

Laravel 缓存驱动程序和比较

Laravel 缓存提供了很棒的缓存后端和驱动程序。 根据您的用例,您可以在它们之间切换以提高应用程序性能和加载时间。

也就是说,Laravel 缓存还提供了一种无缝方式来创建自定义后端并将其与 Laravel 缓存一起使用,但前提是下面的列表不适合您的用例。

接下来我们将讨论 Laravel 缓存提供的所有后端列表。

1.文件

文件 driver 是 Laravel 缓存中未指定驱动程序时使用的默认后端 .env 文件。

文件 后端旨在将缓存数据存储在下找到的加密文件中 storage/framework/. 当缓存新数据时,Laravel 会使用数据和缓存密钥创建一个加密文件。 当用户尝试检索内容时也会发生同样的情况。 Laravel 缓存在文件夹中搜索指定的键,如果找到,则返回内容。

虽然 文件 后端工作完美,节省了安装和配置外部驱动程序的时间,它也非常适合开发。 它比直接从数据库服务器访问数据要快。

要使用 文件 驱动程序,将以下代码添加到您的 .env 文件:

CACHE_DRIVER=file

2. 数组

大批 驱动程序是运行自动化测试的完美缓存后端,并且可以使用 Github Actions、Jenkins 等轻松配置。

大批 后端将缓存的数据存储在 PHP 中的数组中,不需要您安装或配置任何驱动程序。 它非常适合自动化测试,并且比文件缓存后端快一点。

要使用 大批 驱动程序,将以下代码添加到您的 .env 文件:

CACHE_DRIVER=array

3. 数据库

当使用 数据库 驱动程序,数据存储在当前 PHP 进程的内存中。 因此,您需要创建一个数据库表来存储缓存的数据。 此外,数据库缓存通过将查询工作负载从后端分配到多个前端来提高可伸缩性。

你可以运行这个 Artisan 命令—— php artisan cache:table — 自动生成数据库驱动程序所需的数据库模式。

数据库 驱动程序主要用于您可以在托管平台上安装任何软件的情况。

例如,假设您使用的是选项有限的免费托管计划。 为此,我们建议坚持使用 文件 司机因为 数据库 在大多数情况下,驱动程序是应用程序的最弱点,尝试将更多数据推入该瓶颈并不是一个好主意。

要使用 数据库 驱动程序,将以下代码添加到您的 .env 文件:

CACHE_DRIVER=database

4. Redis

Redis 驱动程序使用称为 Redis 的基于内存的缓存技术. 尽管与上面讨论的其他缓存驱动程序相比它很快,但它需要安装和配置外部技术。

要使用 Redis 驱动程序,将以下代码添加到您的 .env 文件:

CACHE_DRIVER=redis

5. 内存缓存

众所周知,Memcached 是最流行的基于内存的缓存存储。 如果你不介意一些额外的服务器维护(必须安装和维护额外的服务),基于内存的缓存驱动程序 Memcached 是不错的选择。

使用 内存缓存 驱动程序需要安装 Memcached PECL 包。

要使用 内存缓存 驱动程序,将以下代码添加到您的 .env 文件。

CACHE_DRIVER=memcached 

要使用的最佳缓存驱动程序和缓存驱动程序的性能取决于您的项目用例和要检索的数据量。

Laravel 缓存使用和方法

Laravel 缓存提供了许多有价值的方法用于实现许多缓存策略。

下面我们将列出并解释不同的方法(按用例分类):

  1. put()
  2. get()
  3. many()
  4. putMany()
  5. increment()
  6. decrement()
  7. forever()
  8. forget()
  9. flush()
  10. remember()
  11. rememberForever()

存储缓存

使用不同的方法在缓存中存储新数据非常简单,每种方法都有几个用例。

1. 缓存::放置()

该方法接受三个关键参数, 期间,以及 数据 被缓存。

让我们来看看如何使用 Cache::put()

Cache::put(key, data, duration)

$post = Post::find(1);

Cache::put('post_1', $post, 20);

上面的代码将缓存具有唯一性的帖子 钥匙 20 秒。

2. 缓存::putMany()

此方法以相同的持续时间在缓存中一次性存储一组数据。 它接受两个参数,它们是 数据.

让我们来看看如何使用 Cache::putMany()

Cache::putMany(data, duration) // syntax

$posts = Post::all();

Cache::putMany($posts, 20);
3. 缓存::记住()

此方法是另一种实现缓存 Aside 策略的绝佳方法。 这 Cache::remember() 方法接受三个参数,一个 钥匙, , 和 关闭 用于在未找到时从数据库中检索数据。

WordPress花园建议你也读一下这篇文章  转译 PHP 代码的终极指南

让我们来看看如何使用 Cache::remember()

Cache::remember(key, duration, closure) // syntax

Cache::remember('posts', 20, function(){
  return Post::all();
});

Laravel 缓存也有 Cache::rememberForever() 方法,不接受 参数并存储 数据 永远。

4. 缓存::永远()

此方法将数据永久存储在缓存服务器中,无需指定任何持续时间。 您可以使用以下代码实现它:

Cache::forever(key, data)

$post = Post::find(1);

Cache::forever('post_1', $post);

检索缓存数据

此类别中的方法从缓存中检索数据。 根据是否找到数据,其中一些方法的行为可能有所不同。

1. 缓存::get()

此方法使用特定键从缓存服务器检索数据。 您可以使用以下代码检索项目:

Cache::get(key) // syntax

$posts = Cache::get('posts');
2. 缓存::many()

这种方法类似于 Cache::putMany(). 它用于使用缓存键数组一次检索缓存数据数组。 您可以使用以下代码检索缓存数组:

Cache::many(keys) // syntax

const $keys = [
  'posts',
  'post_1',
  'post_2'
];

$posts = Cache::many($keys);
3. 缓存::记住()

您还可以使用此方法通过使用提供的密钥检查缓存服务器来检索缓存数据。 如果数据存储在缓存中,它将检索它。 否则,它将从数据库服务器检索数据并将其缓存。 这个方法和 Cache::rememberForever() 只需一个额外的方法 中的参数 Cache::remember() 方法。

从缓存中删除项目

此类别下的方法用于从缓存中删除项目,按功能分组。

1. 缓存::忘记()

此方法使用指定的键参数从缓存中删除单个项目:

Cache::forget('key');
2. 缓存::刷新()

此方法清除所有缓存引擎。 它删除存储在缓存中任意位置的所有项目:

Cache::flush();

递增或递减缓存值

您可以分别使用 increment 和 decrement 方法调整存储在缓存中的整数值的值:

Cache::increment('key');

Cache::increment('key', $amount);

Cache::decrement('key');

Cache::decrement('key', $amount);

Laravel 缓存有很多我们上面没有讨论的很棒的方法,但是上面的方法很流行。 您可以在 Laravel 官方缓存文档中获得所有方法的概述。

缓存命令解释

Laravel 提供了一些命令来让 Laravel 缓存的使用变得简单快捷。 以下是所有命令及其功能的列表。

清除 Laravel 缓存

此命令用于在 Laravel 缓存过期之前使用终端/控制台清除它。 例如,您可以运行以下命令:

php artisan cache:clear

清除路由缓存

此命令用于清除 Laravel 应用程序的路由缓存。 例如,运行以下命令来清除您的路由缓存:

php artisan config:cache

清除编译的视图文件

此命令用于清除 Laravel 应用程序的编译视图文件。 您可以使用以下命令实现它:

php artisan view:clear

数据库表

使用数据库驱动程序时,需要创建一个名为 缓存 来存储缓存数据。 您还可以使用 Artisan 命令生成具有正确架构的迁移:

php artisan cache:table

Laravel 缓存策略

根据您的应用程序用例和数据结构,您可能可以使用几种不同的缓存策略。 您甚至可以创建自定义策略来满足您的需求。 下面我们将介绍您可以在 Laravel 项目中实施的流行缓存策略列表。

直写

在里面 直写 策略,缓存服务器位于请求和数据库服务器之间,使每个 操作在进入数据库服务器之前先通过缓存服务器。 就这样 直写 缓存策略类似于 通读 战略。

您可以使用以下代码使用 Laravel 缓存实现此策略:

public function writeThrough($key, $data, $minutes) {
    $cacheData = Cache::put($key, $data, $minutes)

    // Database Server is called from(after) the Cache Server.
    $this->storeToDB($cachedData)
    return $cacheData
}

private function storeToDB($data){
    Database::create($data)
    return true
}

回写(后写)

该策略是一种更高级的实施方式 直写 通过添加写入操作延迟的策略。

你也可以称之为 写在后面 因为在将数据写入数据库服务器之前应用于缓存服务器的时间延迟。

您可以使用以下代码使用 Laravel 缓存实现此策略:

$durationToFlush = 1; // (in minute)
 $tempDataToFlush = [];

  public function writeBack($key, $data, $minutes){
    return...

营销型WordPress外贸多语言独立站建设+谷歌SEO优化+谷歌关键字广告投放,就找WP花园!深圳公司,技术实力雄厚,用效果说话!详情咨询info@wordpresshy.com

海外社媒SNS代运营Tiktok代运营公司
Revive Old Posts