原文:http://www.upwqy.com/details/24.html
测试设置了标签的缓存的获取方式 和清除标签缓存。
有时候我们可能会对同类型的一些数据做统一缓存。和统一清除更新处理。
那样我们就可以根据标签来进行设置,下面我们来测是tp5的缓存标签的使用
首先是设置带标签的缓存
Cache::tag($tag)->set($key,$map,10);
获取带标签的缓存值 、
这里。我测试了发现 在获取时 无论是否标注标签 都能获取缓存值。
也就是说下面两种方式都可以获取到
Cache::get($key) Cache::tag($tag)->get($key)
然后我们开始清除 带标签的缓存值
Cache::clear($tag);
清除了以后 发现 设置了标签的缓存已经没有值了。没有设置标签的 缓存值还在
所以,这里我得出了总结
设置缓存标签 只是给缓存设置了一个头衔。而key值 才是缓存的唯一标志。
清除带缓存的标签 相当于是根据标签 找到这个标签下的缓存。然后清除他们的key对应的值
以下是测试数据
$tag = 'test'; $key = 'test'; $key_1 = 'test_1'; $map = [ 'name'=>'wang' ]; $map_1 = [ 'age'=>17 ]; Cache::tag($tag)->set($key,$map,10); Cache::set($key_1,$map_1,10); dump(Cache::get($key)); dump(Cache::tag($tag)->get($key)); dump(Cache::get($key_1)); dump(Cache::tag($tag)->get($key_1)); Cache::clear($tag); dump(Cache::get($key)); dump(Cache::tag($tag)->get($key)); dump(Cache::get($key_1)); dump(Cache::tag($tag)->get($key_1));
返回的结果是
array (size=1) 'name' => string 'wang' (length=4) array (size=1) 'name' => string 'wang' (length=4) array (size=1) 'age' => int 17 array (size=1) 'age' => int 17 //清除标签以后的缓存数据。 boolean false boolean false array (size=1) 'age' => int 17 array (size=1) 'age' => int 17