搜索
系统检测到您的用户名不符合规范:

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

浏览:461 发布日期: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;
最佳答案
评论() 相关
收藏
绝世十二少
积分:753 等级:LV2
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /