Laravel查看缓存剩余时间

laravel当配置redis为缓存时查看缓存的剩余时间

Laravel版本9.12

Laravel的缓存配置文件config/cache.php

'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache')

Laravel的数据库配置文件config/database.php

'redis' => [

        'client' => env('REDIS_CLIENT', 'phpredis'),

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'redis'),
            'prefix'  => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_') . '_database_'),
        ],
    ]

Laravel 缓存key的生成规则为config('database.redis.options.prefix').config('cache.prefix').'_cache:key'

当应用env的APP_NAMEapp时,执行Cache::put('test',1,6000)命令,会在redis中生成一个app_databse_app_cache:test的键,值为1,ttl为6000

查看命令

use Illuminate\Support\Facades\Redis;

Redis::connection('cache')->ttl(config('cache.prefix').':'.$keyname)

如果用了tags方法,laravel会生成一个临时key,临时key的值是真实键值对的键

Cache::tags('test1')->put('test',1,6000)


//先拿到临时key 
$tempKey = Redis::connection('cache')->get(config('cache.prefix').':tag:'.$tagName.':key');
//反序列化
$tempKeyStr = unserialize($tempKey)

Redis::connection('cache')->ttl(config('cache.prefix').':'.sha1($tempKeyStr).':'.$keyname)