首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Laravel 5中按键获取所有缓存项的列表?

如何在Laravel 5中按键获取所有缓存项的列表?
EN

Stack Overflow用户
提问于 2015-08-03 23:28:26
回答 2查看 35K关注 0票数 17

laravel中的Cache类有一些方法,比如get('itemKey')从缓存中检索项,以及记住(‘itemKey’,'myData1','myData2')在缓存中保存项。

还有一个方法可以检查项目是否存在于缓存中: Cache::has('myKey');

(当使用基于文件的缓存驱动程序时)有没有办法获得缓存中所有项的列表?

例如,可能被命名为"Cache::all()“的内容将返回:

代码语言:javascript
复制
[
    'itemKey' => [
        'myData1',
        'myData2'
   ],
   'myKey' => 'foo'
]

我能想到的唯一方法就是使用Cache::has()方法遍历所有可能的键名。即aaa,aab,aac,aad...但当然,这不是一个解决方案。

我在文档或API中看不到任何描述这样的函数的东西,但我认为相信一个函数一定存在并不是不合理的。

EN

回答 2

Stack Overflow用户

发布于 2017-01-10 18:34:55

^上述内容在LV 5.2中不起作用

尝试此解决方案:

代码语言:javascript
复制
    $storage = \Cache::getStore(); // will return instance of FileStore
    $filesystem = $storage->getFilesystem(); // will return instance of Filesystem
    $dir = (\Cache::getDirectory());
    $keys = [];
    foreach ($filesystem->allFiles($dir) as $file1) {

        if (is_dir($file1->getPath())) {

            foreach ($filesystem->allFiles($file1->getPath()) as $file2) {
                $keys = array_merge($keys, [$file2->getRealpath() => unserialize(substr(\File::get($file2->getRealpath()), 10))]);
            }
        }
        else {

        }
    }
票数 14
EN

Stack Overflow用户

发布于 2019-10-23 10:33:09

\config\database.php中,为缓存创建一个redis存储

代码语言:javascript
复制
   // store cache in their own redis store ...
    'cache-connection' => [
        'host'               => ...,
        'password'           => ...,
        'port'               => env('REDIS_PORT', 6379),
        'database'           => 2,
        'read_write_timeout' => 60,
        'timeout'            => 6.0,
    ],

\config\cache.php中使用此redis数据库

代码语言:javascript
复制
'stores' => [
   ...
   'redis' => [
        'driver'     => 'redis',
        'connection' => 'cache-connection',
    ],
],

现在,您可以使用Redis类检查缓存中的内容

代码语言:javascript
复制
$a = Redis::connection('cache-connection')->keys('*');
\Log::debug($a);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31791178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档