laravel 5.5 -- Cache

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

交流群 375462817
视频配套文档群文件里面可以下载。
快速入门 https://www.bilibili.com/video/av70545323/
模型关系 https://www.bilibili.com/video/av73028135/
认证授权 https://www.bilibili.com/video/av74879198/
OAuth 2.0 https://www.bilibili.com/video/av75125939/
核心概念 https://www.bilibili.com/video/av76060293/

Cache::has('key')		
Cache::get('key')   
Cache::get('key', 'defult') 
Cache::increment('key') 
Cache::increment('key', 3)		// 如果 key 不存在,返回 3,并且不会为你存储 key,即 key 仍为 null; 失败返回 false

同名方法

sear = rememberForever
put = set
has = offsetExists
get = offsetGet
forget = offsetUnset

get: 获取缓存数据,不存在则存储缓存

if (!$users = Cache::get('users')) {
    $users = DB::table('users')->get();
    Cache::set('users', $users, 10);  // 10 => 10 分钟
}

// 等同于

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

many: 同时获取多个 key,不存在返回 null,此时等同于 get

$aStudent = Cache::many(['helen', 'jack']);
// 等同于 get

// 设置默认值
$aStudent = Cache::many(['helen' => new Student(), 'jack']);
// 等同于 get

putMany: 设定多个值

Cache::putMany(['helen' => new Student('helen'), 'jack' => '10'], 10);

rememberForever | sear: 获取缓存数据,不存在则永久存储缓存

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

// 等同于 sear

pull: 获取 key 然后删除 key

$value = Cache::pull('key');  // 如果不存在 key,返回 null
$value = Cache::pull('key', 'value');

put: 设置缓存

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

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

add: 如果缓存存在了,就返回 false;如果不存在,则添加缓存,然后返回 true

Cache::add('key', 'value', 10);  

forever | forget | flush | clear: 永久设置缓存;删除缓存;全部删除

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

Cache::forget('key');

Cache::flush();   // 不区别前缀,删除所有
// 等同于 clear

deleteMultiple: 删除多个 key

Cache::deleteMultiple(['key1', 'key2']);

tag: 设置标签

# 取的时候标签内容必须一致,不能多,不能少。
# 删的时候标签内容中只要命中,则删除
Cache::tags(['people', 'artists'])->put('John', 141, $minutes);
Cache::tags(['people', 'authors'])->put('Anne', 22, $minutes);

Cache::tags('authors')->flush();

dump(Cache::tags(['people', 'authors'])->get('Anne'));    // null
dump(Cache::tags(['people', 'artists'])->get('John'));    // '141'

辅助全局函数

cache('key');

cache(['key' => 'value'], $minutes);

cache(['key' => 'value'], Carbon::now()->addSeconds(10));

getStore: 返回缓存实例

# sample 1
Illuminate\Cache\FileStore Object
(
    [files:protected] => Illuminate\Filesystem\Filesystem Object
        (
        )

    [directory:protected] => /var/www/html/larabbs/storage/framework/cache/data
)

# sample 2

Illuminate\Cache\RedisStore Object
(
    [redis:protected] => Illuminate\Redis\RedisManager Object
        (
            [driver:protected] => predis
            [config:protected] => Array
                (
                    [default] => Array
                        (
                            [host] => 127.0.0.1
                            [password] => 
                            [port] => 22222
                            [database] => 0
                        )

                )

            [connections:protected] => 
        )

    [prefix:protected] => myCachePrefix:
    [connection:protected] => default
)
laravel 5.4 dingoApi 生成 config:cache 的时候报错问题 简单记录一下,方便使用者遇到这个问题快速定位到问题点   遇上的问题,安装了 "dingo/api": "1.0.*@dev", 当运行 php artisan config:cache   后, 出现  Call to undefined method Closure::__set_state()  报错, 报错是因为 dingo 配置文件 api.php 里面的 下图这个地方,是一... 阅读详情

相关推荐

Laravel系列4.7】连接redis以及缓存应用

连接redis以及缓存应用在现代的数据库应用中,Redis 已经占据了很重要的位置。关于 Redis 的优点相信也不用我多说了,快速的内容访问也能够充当缓存数据库来使用。早前几年还有不少的公司在使用 Memcached ,但是现在就已经屈指可数了。毕竟在同样的功能下,Redis 拥有更多的数据类型,也能适应更多的场景。Laravel 也是可以完美支持 Memcached ...

硬核项目经理 1536

laravel使用cache缓存或redis在ubuntu服务器中不生效问题SwitchDatabase

/猜想:return将值返回给response类,response类再次调用当前方法testcache(),//这里由于刚才的第1次cache->set,所以这时又进入到fail。laravel使用cache缓存或redis在ubuntu服务器中不生效问题。//测试服务器当缓存值大于等于5时,会再次执行这里。//return会有这个现象,exit不会。//但win本地未出现这种情况。

webnoties的专栏 387

Laravel 之 Redis 命令大全

Laravel 之 Redis 命令大全 入门级操作 普通 set / get 操作; set操作,如果键名存在,则会覆盖原有的值; $redis = app('redis.connection'); $redis->set('library', 'predis'); // 存储 key 为 library, 值为 predis 的记录; $redis->get('library'); // 获取 key 为 library 的记录值 set / get多个 key-value $mkv

weixin_42949138的博客 871

Laravel-缓存操作

缓存操作 Laravel 为不同的缓存系统提供了统一的API,缓存的位置位于config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动,laravel目前支持主流的缓存后端如Memcached和Redis。 主要方法: Cache::put(); Cache::get(); Cache::add(); Cache::forever(); Cache::forget(); Cache::has(); 系统默认是使用文件缓存,其缓存文件的存储位置位于stroage/framework/c

秃行者-行星 482

laravel操作redis和缓存操作

laravel操作redis和缓存操作

huaweichenai的博客 2241

Laravel5.4 全局辅助函数cache()

方便的全局辅助函数 在Laravel5.3之前的版本中我们注意到全局辅助函数session()和cookie()。都可以执行的主要功能有三个:获取一个值,设置一个值,或者返回他们的实例。 例如: session('key', null) 获取key的值,不存在时返回nullsession(['key' => 'example']) 设置key的值为emamplesession() 返回一

qq_36663951的博客 1305

laravel5.8(十九)laravel 缓存cache

Laravel中的cache为我们提供了三种缓存机制。 Redis,memcache,以及框架的文件缓存。 这里主要看的是cache中的文件缓存。 一:访问多个缓存存储 使用 Cache 门面,你可以使用 store 方法访问不同的缓存存储器,传入 store 方法的键就是 cache 配置文件中 stores 配置数组里列出的相应的存储器: $value = Cache::store('file')->get('foo'); Cache::store('redis')->put('bar',

camellia的博客 1214

Laravel 5.5 Cache

Cache(缓存) // 缓存使用 (获取缓存实例) * 访问多个缓存存储 $value = Cache::store('file')->get('foo'); Cache::store('redis')->put('bar', 'baz', 10); (从缓存中获取数据) $...

qq_37910492的博客 712

laravel使用redis存cache,如何在Laravel中配置和使用Redis缓存 · laravel5.7学习之路

laravel使用redis存cache,如何在Laravel中配置和使用Redis缓存 · laravel5.7学习之路

我的ID:sumer-work(全网同名)昵称:程序员SUMER(全网同名) 920

Laravel5.2 Cache无法取值

可能有朋友从网上下的框架,里面有集成好的管理系统,但是cache可以存入,但是出现无法取值的问题。在这里,我们需要修改.env文件,更改Cache的驱动项为CACHE_DRIVER=file。因为驱动项如果是array(数组缓存驱动),那么这个CACHE不会持久化,只在一次PHP执行里生效,改为file的话,就会存在硬盘里了。...

amazingdyd的博客 2142

“Failed to clear cache. Make sure you have the appropriate permissions” in Laravel 5.7

在搭建laravel5.7的时候,报错: “Failed to clear cache. Make sure you have the appropriate permissions” in Laravel 5.7 原因是差个目录,需要新建一个目录,就可以了。 mkdir -p storage/framework/cache/data 参考: https://stackoverflow.com/questions/54519700/failed-to-clear-cache-make-sure-you-

阳水平的博客 3016

Laravel 5.4 Cache::put的一个小坑

使用的是Cache的file驱动,然而在\Cache::put($key,$value)时发现,并没有存入。 一开始以为是file驱动的问题,后来跟踪代码发现,居然源码里当过期时间不设置时,根本不保存。 既然如此,那么函数参数何必默认为空呢,这不是坑人吗? 转载于:https://www.cnblogs.com/xdao/p/laravel_cache.html...

weixin_30649641的博客 777

为什么选择Laravel Page Cache?静态文件缓存的5大核心优势解析

Laravel Page Cache是一款专为Laravel框架设计的静态文件缓存工具,它能将动态页面响应以静态文件形式存储在磁盘上,为网站带来闪电般的加载速度。对于追求极致性能的开发者和网站管理员来说,这款工具提供了简单而强大的解决方案,让动态网站也能拥有静态网站的加载速度优势。 ## 🚀 核心优势一:极致的加载速度提升 Laravel Page Cache最显著的优势在于其能将页面响应缓

gitblog_00492的博客 1074

laravel 5.8 guzzle get 参数_Laravel速查表 Cache Cookie Request

文档日期:2019年10月31日链接信息见 https://learnku.com/docs/laravel-cheatsheet/5.8Cache// Cache cache() Cache::put('key','value',$second); Cache::put('key','value'); Cache::add('key','value',$seconds); Cache::fore...

weixin_39626162的博客 288

2. Laravel5学习笔记:执行route:cache时报LogicException

laravel5的路由支持缓存。需要执行以下命令:php artisan route:cache执行完毕后,报出以下错误:Route cache cleared! [LogicException] Unable to prepare route [/] for serialization. Uses Closure.这个异常的错误信息,提示的已经非常明确了:大概意思就是说在闭包里边,是不能够进行路由

大愚Talk 1万+

Laravel 5.4 设置全局变量

Laravel 5.4 设置全局变量参数。

TROUBLE I AM IN 7840

laravel 5.1 的程序性能优化(配置文件)

命令优化 本文的目的是来弄清楚一些优化命令在 Laravel 5.1 和之前版本之间的差别. 在 15年6月发布的 Laravel 5.1版本中, 命令和他们的逻辑方法被清理掉, 本文章就是描述这些不同. Laravel 5 在优化框架性能的时候提供了一系列的命令, 这篇文章接卸这些命令做什么并且把缓存文件放到了什么位置. php artisan optimize php artisan ...

weixin_33711641的博客 101

laravel5.6】 laravel 执行 php artisan route:cache 报错 Unable to prepare route [/] for serialization. Us...

laravel 在部署的时候。需要优化路由加载,执行命令 php artisan route:cache 报错了。如下 这个异常的错误信息,提示的已经非常明确了:大概意思就是说在闭包里边,是不能够进行路由缓存的。那么现在就有两种办法: 想要继续使用闭包,那就只能放弃路由缓存(至少目前我没有其他办法,如果你有,记得告诉我)。 那就是在路由里边,也就是rou...

dianqiangjin0204的博客 1325
上一篇: git 入门
下一篇: laravel 5.5 -- Query Builder
OneGoal
博客等级 码龄10年 28粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值