跳转到内容

增强版缓存cache2

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') 这种格式,即第二项为rpoplpop 这种关键字的时候,就代表把第一项键名的列表数据取出来,取出来的同时会把里边的那条记录同时清除掉。这个就是跟上面的组合起来,实现队列用的。第一项参数是之前存放进去的数组键名即KEY 。第二项为rpop的时候,代表顺序逐条取记录,第二项为lpop的时候,代表反序逐条取记录,每取一条都会同时清除一条,直到全部取完为空。 5、cache2() 全部参数不设置的时候,就可以直接操作Redis类中的方法了,比如 cache2()->delete('test')cache2()->get('test') ,以满足更个性的需求。