zoukankan      html  css  js  c++  java
  • 黑马lavarel教程---9、缓存操作

    黑马lavarel教程---9、缓存操作

    一、总结

    一句话总结:

    legend2项目中自己写的哪些文件操作都可以通过这里的缓存实现,简单方便

    1、lavarel中如何使用后端主流的缓存如 Memcached 和 Redis 等?

    在配置文件 config/cache.php中指定缓存驱动即可

    2、系统默认是使用文件缓存,其缓存文件存储的位置位于哪里?

    storage/framework/cache/data

    3、如何用缓存做计数器?

    increment 和 decrement 方法
    increment 和 decrement 方法可用于调整缓存中的整型数值。这两个方法都可以接收第二个参数来指明缓存项数值增加和减少的数目:一般会用作计数器。
    Cache::increment('key');
    Cache::increment('key', $amount);
    Cache::decrement('key');
    Cache::decrement('key', $amount);

    4、缓存经常使用的方法有哪些?

    add/put、get、has、forget、flush、remember

    5、lavarel缓存使用基本操作?

    引入Cache:use Cache;
    put存:Cache::put($u_id,$question_list_box,60*24);
    get取:$question_list_box=Cache::get($u_id);

    6、删除缓存文件的方法是什么(也就是删了之后那些文件也会跟着被删了)?

    $value = Cache::pull('key'); 从缓存中获取缓存项然后删除,如果缓存项不存在的话返回null,一般设置一次性的存储的数据
    Cache::forget('key'); 使用forget 方法从缓存中移除缓存项数据
    Cache::flush();使用 flush 方法清除所有缓存:并且删除对应的目录

    二、缓存操作

    Laravel 为不同的缓存系统提供了统一的 API。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 目前支持主流的缓存后端如 Memcached 和 Redis 等。

    主要方法:

    Cache::put() 

    Cache::get() 

    Cache::add()

    Cache::pull()

    Cache::forever()

    Cache::forget()

    Cache::has()

    系统默认是使用文件缓存,其缓存文件存储的位置位于(storage/framework/cache/data):

     

    1、设置缓存

    语法:Cache::put('key', 'value', $minutes);

    注意:如果该键已经存在,则直接覆盖原来的值,有效期必须设置,单位是分钟

    语法:Cache::add('key', 'value', $minutes);

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

    永久存储数据

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

    Cache::forever('key', 'value');                  永久存储并不是真的永久,只不过其截至的时间是比较大的值(到2286年)

    2、获取缓存数据

    Cache 门面的 get 方法用于从缓存中获取缓存项,如果缓存项不存在,返回 null。如果需要的话你可以传递第二个参数到 get 方法指定缓存项不存在时返回的自定义默认值:

    $value = Cache::get('key');                        获取指定的key

    $value = Cache::get('key', 'default');     获取指定的key值,如果不存在,则使用默认值

    可以传递一个匿名函数作为默认值,如果缓存项不存在的话闭包的结果将会被返回。传递匿名函数允许你可以从数据库或其它外部服务获取默认值:

    $value = Cache::get('key', function() {

        return DB::table(...)->get();

    });

    检查缓存项是否存在

    has 方法用于判断缓存项是否存在:

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

        //

    }

    3、删除缓存数据

    语法:

    $value = Cache::pull('key'); 从缓存中获取缓存项然后删除,如果缓存项不存在的话返回null,一般设置一次性的存储的数据

    Cache::forget('key'); 使用forget 方法从缓存中移除缓存项数据

    Cache::flush();使用 flush 方法清除所有缓存:并且删除对应的目录

    4、缓存数值增加/减少

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

    Cache::increment('key');

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

    Cache::decrement('key');

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

    5、获取并存储

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

    $value = Cache::remember('users', $minutes, function() {

        return DB::table('users')->get();

    });

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

    如果获取users值是不存在,则可以通过后续的回调代码去执行对应的操作获取其值,并返回,同时会设置一个指定有效期的缓存,方便下次直接使用。比较典型的操作就是在获取微信的accesstoken的时候可以使用。原因是accesstoken本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。

     

    还可以联合 remember 和 forever 方法:

    $value = Cache::rememberForever('users', function() {

        return DB::table('users')->get();

    });

    ①创建需要的路由

     

    ②创建test19方法实现相关代码操作

    如果需要使用cache提供的方法,则需要先引入

     

     

     

     

    经常使用的:add/put、get、has、forget、flush、remember

     
  • 相关阅读:
    AGC037F Counting of Subarrays
    AGC025F Addition and Andition
    CF506C Mr. Kitayuta vs. Bamboos
    AGC032D Rotation Sort
    ARC101F Robots and Exits
    AGC032E Modulo Pairing
    CF559E Gerald and Path
    CF685C Optimal Point
    聊聊Mysql索引和redis跳表
    什么是线程安全
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11585993.html
Copyright © 2011-2022 走看看