查询数据缓存标签的有时失灵,不知是否官方BUG

浏览:480 发布日期:2018/12/07 分类:ThinkPHP5专区 关键字: thinkphp 查询缓存
起初以为自己的项目问题,于是下载官方TP5.0.22核心包进行多次测试,发现查询数据缓存的标签处理有时失灵,在多次增、删、改、查的反复操作之后,查询缓存就失灵了,一直都是读取失灵之前的缓存数据。

具体代码如下:
<?php
namespace app\index\controller;

use think\Db;

class Index
{
public function index()
{
$row = Db::name('links')->order('id desc')
->cache(true, 10000, "links") // 查询缓存到统一标签 links,方便统一删除
->select();
var_dump($row);exit;
}

public function add()
{
$row = Db::name('links')->insert([
'title' => time(),
]);
\think\Cache::clear('links'); // 统一删除标签links归类的所有缓存
}

public function edit()
{
$result = Db::name('links')->order('id desc')->find(); // 编辑最新一条
$row = Db::name('links')->where('id',$result['id'])
->cache(true, null, "links") // 更新该条缓存
->update([
'title' => time(),
]);
}

public function del()
{
$result = db('links')->order('id desc')->find(); // 删除最新一条
$row = db('links')->where('id',$result['id'])
->cache(true, null, "links") // 删除该条缓存
->delete();
}
}
?>

数据表如下:
CREATE TABLE `ey_links` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(50) DEFAULT '' COMMENT '网站标题',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
最佳答案
评论( 相关
后面还有条评论,点击查看>>