php - 使用键模式从 Laravel 4 缓存中删除?

标签 php caching laravel laravel-4

对于我的包,我们使用了 Laravel 缓存,

我们创建的每个缓存键都有前缀,所以我们得到 mypackage-configmypackage-md5ofafilename 有时我需要刷新我的包创建的所有缓存文件,问题?我只知道缓存键的模式,我不知道整个键!

所以,我需要一种方法去 Cache::forget('mypackage-*') 或类似的方法,这可能吗?

如果只是为了我的系统我知道我正在使用文件缓存,所以我可以手动取消链接文件,但因为它是一个通用包我不知道最终用户使用什么缓存方法,我只是知道接口(interface)(又名 Laravel 缓存接口(interface))。

最佳答案

另一个解决方案:只要您使用文件或数据库缓存,您就可以使用Cache Tags。 .

只需用您的包名称标记每个缓存条目:

Cache::tags('myPackage')->put('config', $config, $minutes);
Cache::tags('myPackage')->put('md5ofafilename', $md5, $minutes);

(您还可以将 tags 方法与 rememberforeverrememberForever 一起使用)

当需要刷新包条目的缓存时,就这样做

Cache::tags('myPackage')->flush();

注意: 当您需要访问缓存条目时,您仍然需要引用标签。例如

$myConfig = Cache::tags('myPackage')->get('config');

这样,另一个具有键 config 且具有不同标签(例如 hisPackage)的缓存条目将不会与您的冲突。

关于php - 使用键模式从 Laravel 4 缓存中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14873506/

相关文章:

php - 在一个线程中排队请求以进行长轮询

php - 如何使用 Doctrine 的 ArrayCollection::exists 方法

ubuntu 上的 Java 内存不足,但存在大量缓存内存

laravel - 当我运行 Composer update 时如何不升级到 Laravel 5.4

javascript - 上传文件时添加文件描述 Yii 1

javascript - 如果用户直接在 URL 中输入页面名称,如何重定向页面

php - laravel 使用用户函数验证

php - 从 Laravel 的存储中下载文件

Python包代理/缓存

c# - 在 asp.net 环境中处理缓存