广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP laravel缓存cache机制怎么实现
  • 472
分享到

PHP laravel缓存cache机制怎么实现

2023-07-04 13:07:07 472人浏览 八月长安
摘要

今天小编给大家分享一下PHP laravel缓存cache机制怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧

今天小编给大家分享一下PHP laravel缓存cache机制怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Laravel中的cache为我们提供了三种缓存机制。

Redis,memcache,以及框架的文件缓存。

这里主要看的是cache中的文件缓存。

一、访问多个缓存存储

使用 Cache 门面,你可以使用 store 方法访问不同的缓存存储器,传入 store 方法的键就是 cache 配置文件中 stores 配置数组里列出的相应的存储器:

$value = Cache::store('file')->get('foo');Cache::store('Redis')->put('bar', 'baz', 600);  // 10分钟

二、从缓存中获取数据

1.获取数据并设置默认值

(1):正常取值

$value = Cache::get('key');

(2):如果不存在,附默认值

$value = Cache::get('key', 'default');

(3):使用闭包操作,附默认值

$value = Cache::get('key', function() {    return DB::table(...)->get();});

2.检查缓存项是否存在

has 方法用于判断缓存项是否存在,如果值为 null 或 false 该方法会返回 false:

if (Cache::has('key')) {    //}

3.数值增加/减少

increment 和 decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目:

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

4.获取 & 存储

有时候你可能想要获取缓存项,但如果请求的缓存项不存在时给它存储一个默认值。例如,你可能想要从缓存中获取所有用户,或者如果它们不存在的话,从数据库获取它们并将其添加到缓存中,你可以通过使用 Cache::remember 方法实现:

$value = Cache::remember('users', $seconds, function() {    return DB::table('users')->get();});

如果缓存项不存在,传递给 remember 方法的闭包被执行并且将结果存放到缓存中。

你还可以使用 rememberForever 方法从缓存中获取数据或者将其永久存储起来:

$value = Cache::rememberForever('users', function() {    return DB::table('users')->get();});

5.获取 & 删除

如果你需要从缓存中获取缓存项然后删除,你可以使用 pull 方法,和 get 方法一样,如果缓存项不存在的话返回 null:

$value = Cache::pull('key');

三、缓存中存储数据

1.获取存储数据

你可以使用 Cache 门面上的 put 方法在缓存中存储数据。当你在缓存中存储数据的时候,需要指定数据被缓存的时间(秒数):

Cache::put('key', 'value', $seconds);

如果没有传递缓存时间到 put 方法,则缓存项永久有效:

Cache::put('key', 'value');

除了传递缓存项失效时间,你还可以传递一个代表缓存项有效时间的 php Datetime 实例:

$expiresAt = Carbon::now()->addMinutes(10);Cache::put('key', 'value', $expiresAt);

2.缓存不存在时存储数据

add 方法只会在缓存项不存在的情况下添加数据到缓存,如果数据被成功添加到缓存返回 true,否则,返回 false:

Cache::add('key', 'value', $seconds);

3.永久存储数据

forever 方法用于持久化存储数据到缓存,这些值必须通过 forget 方法手动从缓存中移除:

Cache::forever('key', 'value');

四、从缓存中移除数据

可以使用 Cache 门面上的 forget 方法从缓存中移除缓存项数据:

Cache::forget('key');

还可以通过设置缓存有效期为 0 或负数来移除缓存项:

Cache::put('key', 'value', 0); Cache::put('key', 'value', -5);

如果要清除所有缓存,可以通过 flush 方法:

Cache::flush();

以上就是“PHP laravel缓存cache机制怎么实现”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网PHP编程频道。

--结束END--

本文标题: PHP laravel缓存cache机制怎么实现

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PHP laravel缓存cache机制怎么实现
    今天小编给大家分享一下PHP laravel缓存cache机制怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-07-04
  • PHP中怎么实现缓存机制
    这篇文章给大家介绍PHP中怎么实现缓存机制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。普遍缓存技术数据缓存:这里所说的数据缓存是指数据库查询PHP缓存机制,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不...
    99+
    2023-06-17
  • SpringBoot怎么整合Spring Cache实现Redis缓存
    今天小编给大家分享一下SpringBoot怎么整合Spring Cache实现Redis缓存的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下...
    99+
    2023-07-02
  • java怎么实现Redis的LRU缓存机制
    本篇内容主要讲解“java怎么实现Redis的LRU缓存机制”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“java怎么实现Redis的LRU缓存机制”吧!目录LRU概述使用LinkedHashM...
    99+
    2023-06-20
  • Java中怎么实现日志缓存机制
    今天就跟大家聊聊有关Java中怎么实现日志缓存机制,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java 日志机制的介绍Java 日志机制在很多文章中都有介绍,为了便于后面文章部分的...
    99+
    2023-06-17
  • Android中怎么实现图片缓存机制
    这期内容当中小编将会给大家带来有关Android中怎么实现图片缓存机制,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Android 图片缓存机制的深入理解Android加载一张图片到用户界面是很简单的,但...
    99+
    2023-05-30
    android
  • redis怎么做缓存机制
    Redis是一个开源的、高性能的键值数据库,它可以用作缓存机制来提高系统的访问速度。以下是使用Redis作为缓存机制的一些步骤:1....
    99+
    2023-09-06
    redis
  • 怎么实现一个小程序数据缓存机制
    怎么实现一个小程序数据缓存机制?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。小程序数据缓存相关知识数据缓存:缓存数据,从而在小程序退出后再次打开时,可以从缓存中读取上次保存的数...
    99+
    2023-06-14
  • WCF缓存机制怎么理解
    这篇文章主要讲解了“WCF缓存机制怎么理解”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WCF缓存机制怎么理解”吧!缓存是很占内存的,缓存也有它的好处,这里就WCF缓存机制分析一个案例,希望...
    99+
    2023-06-17
  • 如何实现Redis的LRU缓存机制
    这篇文章给大家分享的是有关如何实现Redis的LRU缓存机制的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到最大限制的时候会使用...
    99+
    2023-06-14
  • PHP中怎么实现缓存技术
    这篇文章主要为大家展示了“PHP中怎么实现缓存技术”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP中怎么实现缓存技术”这篇文章吧。全页面静态化缓存也就是将页面全部生成html静态页面,用户访...
    99+
    2023-06-16
  • PHP怎么实现数据缓存类
    这篇文章主要介绍了PHP怎么实现数据缓存类,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。思路是这样的:对于一般的变量,把该变量变成PHP语言的格式,写到文件中,用时只要inc...
    99+
    2023-06-17
  • spring redis注解如何实现缓存机制
    这篇文章给大家分享的是有关spring redis注解如何实现缓存机制的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。1、xml配置 <bean id="poolC...
    99+
    2022-10-18
  • Java手动实现Redis的LRU缓存机制
    目录前言第一种实现(使用LinkedHashMap)第二种实现(双链表+hashmap)补充前言 最近在逛博客的时候看到了有关Redis方面的面试题,其中提到了Redis在内存达到...
    99+
    2022-11-12
  • NHibernate缓存管理机制怎么理解
    这篇文章主要介绍“NHibernate缓存管理机制怎么理解”,在日常操作中,相信很多人在NHibernate缓存管理机制怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”NHibernate缓存管理机制怎...
    99+
    2023-06-17
  • 小程序数据缓存机制应用实现
    小程序数据缓存相关知识 数据缓存:缓存数据,从而在小程序退出后再次打开时,可以从缓存中读取上次保存的数据,常用的数据缓存API如下表所示: 注意:将数据存储在本地缓存中指定的 k...
    99+
    2022-11-12
  • 怎么实现redis缓存
    这篇文章主要介绍了怎么实现redis缓存的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么实现redis缓存文章都会有所收获,下面我们一起来看看吧。1、使用宝塔面板先搭建好微擎...
    99+
    2022-10-19
  • 浅析PHP怎么实现web缓存技术
    随着互联网的快速发展,网站的用户访问量不断增加,对服务器的负担也在不断增大,这时候采用Web缓存技术可以显著地减轻服务器的负担,提高用户访问速度、网站性能和稳定性。本文将介绍PHP如何实现Web缓存技术。一、Web缓存的概念Web缓存是指将...
    99+
    2023-05-14
    php
  • php中什么是进程缓存?怎么实现?
    PHP(Hypertext Preprocessor)是一种开源的服务器脚本语言,主要用于网站开发。随着网站访问量的增加,PHP页面的加载也会变得更加缓慢,从而降低用户体验。为了提高PHP页面加载速度,可以使用进程缓存技术,本篇文章将介绍如...
    99+
    2023-05-14
    php 缓存
  • 浅谈java如何实现Redis的LRU缓存机制
    目录LRU概述使用LinkedHashMap实现 使用LinkedHashMap简单方法实现双链表+hashmapLRU概述 最近使用的放在前面,最近没用的放在后面,如果...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作