laravel 5.5 -- Cache

交流群 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
)

版权声明:本文为OneGoal原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。