分享个小知识,帝国CMS评论分表新评论更新缓存?小编一memcached缓存做例子。为了方便复用我们定义两个函数,一个函数能生成key键值名与SQL的数组。另外一个就不用多说了哈,很明显就是新的评论删除这个key键值名就可以了。 [ol]//生成评论分表缓存信息(缓存键值名+拼接SQL语句)function getPlCacheKey($pldatatbs, $pubid, $order = '') {global $dbtbpre, $public_r;$biaoship = $public_r['add_pcurl'] ?: 'meiweny';$biaoshi = str_replace(['http://','https://','/','www.','.'], "", $biaoship);$fenbiaopl = explode(',', $pldatatbs);$unionQuery = '';for ($i = 1; $i $cacheKey,'sql' => $finalSql];}[/ol]复制代码[ol]//删除评论分表缓存function deletePlCache($cacheKey) {global $memcache;if ($memcache === null) {echo "Error: Memcache实例为空!";return false;}return $memcache->delete($cacheKey);}[/ol]复制代码不用讲,这两个东西还是放在/e/class/userfun.php里面哈。接下来我们就在评论发布成功那个文件plfun.php加上如下语句(ecmsEmptyShowKey($keyvname);//清空验证码)下面增加 [ol]$hcpagenum = isset($_POST['hcpagenum']) ? (int)$_POST['hcpagenum'] : $public_r['pl_num'];$hcorder = ' order by plid desc limit 0,'.$hcpagenum;$hcResult = getPlCacheKey($plsetr['pldatatbs'], $pubid, $hcorder);deletePlCache($hcResult['key']);[/ol]复制代码接下来就是多表读取的index.php,($order=" order by ".$addorder." limit $offset,$line";)下面增加 [ol]$plsqlarray = getPlCacheKey($plr['pldatatbs'], $pubid, $order);$plSql = $plsqlarray['sql'];[/ol]复制代码至此,完美实现了帝国CMS评论分表新有新的评论更新缓存 缓存, 帝国