`cache2`函数相比TP自带函数`cache`的功能实现了进一步增强。其中`cache`的功能,`cache2`都包含有,使用方法一样。
特别注意:`cache`缓存的内容,后台清空缓存的时候(或者某些特别项目操作的时候),就会被全部清除,`cache2`缓存的内容,后台清空缓存操作,不会全部被清除。
`cache2`主要体现在以下几方面。
1、`cache2('ab*',null)` 可以清除所有ab键名开头,也包括ab键名的缓存(注:键名指的是数组的key)
2、`cache2('ab*')` 可以列出所有ab键名开头,也包括ab键名的KEY,注意不包含值,比如`['aa1','aa99','aaxx','aa']`,仅只是KEY而已。
3、`cache2(['aa','bb',''cc],'abcd')` 像这种格式,第一项是数组,并且数组的KEY是数字下标,不能有字母的KEY数组,第二项是键名的话。就可以批量把他们加入缓存,可以反复追加,一次加入10万条耗时大约6秒左右。
第一项只能是类似下面的数组,里边的每一项可以是字符串,也可以是任意多维数组。
$aa = [r
'第一项字符串',r
'第二项数组',r
'第三项',r
];
不允许下面这种类型的数组,但你可以先使用`array_values($aa)`这个函数强制把他们转为数字下标即可.
$aa = [r
'aa'=>'第一项',r
'23'=>'第二项',r
'xx'=>'第三项',r
];
4、`cache2('abcd','rpop')` 这种格式,即第二项为`rpop`或`lpop` 这种关键字的时候,就代表把第一项键名的列表数据取出来,取出来的同时会把里边的那条记录同时清除掉。这个就是跟上面的组合起来,实现队列用的。第一项参数是之前存放进去的数组键名即KEY 。第二项为`rpop`的时候,代表顺序逐条取记录,第二项为`lpop`的时候,代表反序逐条取记录,每取一条都会同时清除一条,直到全部取完为空。
5、`cache2()` 全部参数不设置的时候,就可以直接操作`Redis`类中的方法了,比如 `cache2()->delete('test')` 、 `cache2()->get('test')` ,以满足更个性的需求。,



