Laravel:删除只知道密钥的一部分(不是完整密钥)的缓存条目

时间:2016-03-27 09:06:10

标签: laravel caching

简而言之:如果我不知道完整密钥但只知道完整密钥的开头或部分内容,如何从Laravel缓存中删除一个或多个条目?

总之:我正在使用一个创建“动态”缩略图的插件,并将它们存储在缓存中,给定一个原始文件

即。原始文件:

my-file.jpg

创建Thumb时,它们存储在缓存中:

1459069074s:67:"http://mysite/thumbs/my-file_150x150.jpg";
1455783174s:62:"http://mysite/thumbs/my-file_300x300.jpg";
...

当我删除my-file.jpg时,我也可以删除glob()的相关缩略图,这是一个简单的部分(我不必检索_widthxheight.jpg后缀,{{1}这对我来说)...但是条目仍然驻留在缓存中,并且不知道如何使用glob()删除它们...

我可以使用Cache::forget('key'),但这会影响所有缓存的项目,看起来有点过分......

由于

1 个答案:

答案 0 :(得分:0)

哦,找到了解决方案!由于我有缩略图路径(使用glob()),我可以遍历这些路径,使用pathinfo()检索文件名并将其用作删除缓存项目的键