对于我的包,我们使用了 Laravel 缓存,
我们创建的每个缓存键都有前缀,所以我们得到 mypackage-config
,mypackage-md5ofafilename
有时我需要刷新我的包创建的所有缓存文件,问题?我只知道缓存键的模式,我不知道整个键!
所以,我需要一种方法去 Cache::forget('mypackage-*')
或类似的方法,这可能吗?
如果只是为了我的系统我知道我正在使用文件缓存,所以我可以手动取消链接文件,但因为它是一个通用包我不知道最终用户使用什么缓存方法,我只是知道接口(interface)(又名 Laravel 缓存接口(interface))。
最佳答案
另一个解决方案:只要您不使用文件或数据库缓存,您就可以使用Cache Tags。 .
只需用您的包名称标记每个缓存条目:
Cache::tags('myPackage')->put('config', $config, $minutes);
Cache::tags('myPackage')->put('md5ofafilename', $md5, $minutes);
(您还可以将 tags
方法与 remember
、forever
和 rememberForever
一起使用)
当需要刷新包条目的缓存时,就这样做
Cache::tags('myPackage')->flush();
注意: 当您需要访问缓存条目时,您仍然需要引用标签。例如
$myConfig = Cache::tags('myPackage')->get('config');
这样,另一个具有键 config
且具有不同标签(例如 hisPackage
)的缓存条目将不会与您的冲突。
关于php - 使用键模式从 Laravel 4 缓存中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14873506/