`cache2`函数必须依赖Redis。 `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 = [ '第一项字符串', '第二项数组', '第三项', ]; ~~~ 不允许下面这种类型的数组,但你可以先使用`array_values($aa)`这个函数强制把他们转为数字下标即可. ~~~ $aa = [ 'aa'=>'第一项', '23'=>'第二项', 'xx'=>'第三项', ]; ~~~ 4、`cache2('abcd','rpop')` 这种格式,即第二项为`rpop`或`lpop` 这种关键字的时候,就代表把第一项键名的列表数据取出来,取出来的同时会把里边的那条记录同时清除掉。这个就是跟上面的组合起来,实现队列用的。第一项参数是之前存放进去的数组键名即KEY 。第二项为`rpop`的时候,代表顺序逐条取记录,第二项为`lpop`的时候,代表反序逐条取记录,每取一条都会同时清除一条,直到全部取完为空。 5、`cache2()` 全部参数不设置的时候,就可以直接操作`Redis`类中的方法了,比如 `cache2()->delete('test')` 、 `cache2()->get('test')` ,以满足更个性的需求。