Thinkphp5缓存方法remember导致的错误

今天早上照例看了看服务器上的Redis数据,发现Redis某键名下的数据全为0,然后又查看数据库数据正常。代码如下:

  1. $info = Db::name("SystemDeviceThreshold")->where(['id'=>$id])->field('id,device_id',true)->find();
  2. p(json_encode($info)); //打印输出数据txt文件
  3. Cache::store('redis')->remember('alarm_'.$data['device_id'],$info);

这段代码是放在数据修改部分的,就是当数据发生修改时,重新用新数据更新Redis中的旧数据。于是我尝试修改了一下数据,发现打印输出的txt文件中数据正常,Redis中数据依然为零。

thinkphp5缓存方法remember

输出txt文件数据:

 

Thinkphp5缓存方法remember导致的错误

然后再看Thinkphp5的开发文档,文档中关于remember方法只有一句话:“不存在则写入缓存数据后返回”。难道是键值不存在的时候才会写入数据吗?真是一个好坑啊,本以为这个方法会自动更新缓存数据呢,看来以后看文档得咬文嚼字了。

你想把广告放到这里吗?

发表评论

您必须 登录 才能发表留言!