Laravel 9中如何在默认File Cache外直接使用带标签的Redis缓存
问题解答
可以实现你要的效果,但不能直接调用Cache::tags('tag')->put('b', 2)——因为你的默认缓存驱动是file,而file驱动本身不支持缓存标签功能,直接调用会抛出方法不存在的异常。
要达成你期望的效果,只需要在调用标签缓存时,显式指定使用redis驱动即可,具体写法如下:
Cache::put('a', 1); // 这里默认使用file缓存 Cache::store('redis')->tags('tag')->put('b', 2); // 这里指定用redis驱动并使用标签
补充说明
- 你的
cache.php配置里已经正确配置了redis缓存存储,且redis驱动天然支持缓存标签功能,所以上述写法可以直接生效。 - 如果觉得每次写
store('redis')太繁琐,也可以自定义一个缓存门面或者辅助函数,比如创建一个TagCache门面,默认指向redis驱动,这样就能直接用TagCache::tags('tag')->put(...)来简化调用。
内容的提问来源于stack exchange,提问作者RomanKovalev
相关产品推荐
相关产品推荐

