Laravel缓存报错:该缓存存储不支持标签,寻求技术解决方案
解决 "This cache store does not support tagging" 错误
这个报错其实说得很直白——你当前用的array缓存驱动**不支持缓存标签(tagging)**功能,但你的应用代码(或者依赖的第三方包)里刚好有调用缓存标签的逻辑,直接触发了这个错误。
问题根源
你的环境配置能明显看出问题:
.env里设置了CACHE_DRIVER=arrayconfig/cache.php也把默认缓存驱动绑定到了这个配置
Laravel的array缓存驱动是个内存级临时缓存,只提供最基础的读写能力,完全不支持Cache::tags()这类标签相关的API,所以一调用就报错。
两种解决方案,按需选
方案1:不需要缓存标签,调整代码/配置
如果你其实用不上缓存标签功能:
- 先查自己的代码里有没有
Cache::tags(...)、Cache::tag(...)这类调用,把它们改成普通的缓存操作(比如Cache::put()、Cache::get())就行。 - 要是是第三方扩展包在偷偷用缓存标签,去翻这个包的文档,看看有没有禁用标签的配置开关。
方案2:需要缓存标签,换支持的驱动
如果你的应用确实依赖缓存标签,那就把驱动换成支持标签的类型,推荐两种常用选项:
选项A:改用Redis驱动(推荐)
你的.env里已经配好了Redis的连接信息,几步就能搞定:
- 打开
.env,把CACHE_DRIVER=array改成CACHE_DRIVER=redis - 确保Laravel有Redis依赖:旧版本跑
composer require predis/predis,新版本用phpredis扩展的话不用额外装 - 启动Redis服务(XAMPP集成了就启动对应模块,没有的话单独装Redis并启动)
- 清空缓存:执行
php artisan cache:clear - 重启XAMPP的Apache,再访问
http://localhost:8000试试
选项B:改用Database驱动
不想用Redis的话,数据库也能支持缓存标签:
- 打开
.env,把CACHE_DRIVER=array改成CACHE_DRIVER=database - 生成缓存表的迁移文件:跑
php artisan cache:table - 执行迁移建表:
php artisan migrate - 清空缓存:
php artisan cache:clear - 重启服务后测试访问
内容的提问来源于stack exchange,提问作者Diego Cespedes
相关产品推荐
相关产品推荐

