测试设置了标签的缓存的获取方式 和清除标签缓存。
有时候我们可能会对同类型的一些数据做统一缓存。和统一清除更新处理。
那样我们就可以根据标签来进行设置,下面我们来测是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