Codeigniter 对象缓存不起作用
Codeigniter object cache doesnt work
我正在尝试将 json 网络响应保存到缓存中,我的控制器非常简单,这里是:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
include_once APPPATH . 'models/presenters/Radio.php';
use Streame\Model\Presenter\Radio as Radio;
use Streame\Model\Presenter\Genre as Genre;
class Test extends MY_Controller {
public function index(){
$this->load->driver('cache');
if (! $cache_data = $this->cache->get('zzz')) {
$req = $this->send_req('radios', 'GET', array("size" => 5, "phrase" => "rock"));
$json = $req->json();
$top_50_radios = Radio::deserializeJsonArray($json["docs"]);
$cache_data = (object) $top_50_radios;
$this->cache->save('zzz', $cache_data, 60 * 60 * 12);
echo "\n</br>NOT CACHEEEEED"; var_dump($cache_data);
} else {
echo "\n</br>CACHEEEEED"; var_dump($cache_data);
}
shuffle($cache_data);
$data["random_radio"] = $cache_data[0]->permalink;
}
}
当我更改 config.php
中的 cache_path
时,我开始工作了,从无到现在:
$config['cache_path'] = APPPATH.'../../cache/';
但是现在,不知道从哪里开始,它又开始忽略缓存了,我唯一得到的是"NOT CACHED"。
我是运行nginx服务器中的框架,可能跟文件的权限有关系?
我不知道如果您更改缓存路径配置,您的问题是否会消失,
因为如果你留空它应该可以工作(你应该在你的应用程序文件夹中有一个缓存文件夹)
我要做的第一件事是检查变量是否正确保存
插入即可管理
var_dump($this->cache->cache_info());
将变量保存在缓存中后
如果您在此处获得正确的信息 - 我们开始朝着正确的方向前进 - 如果不是,您必须检查您的路径是否确实存在
很简单,chmod 777 -R cache/
成功了。
我正在尝试将 json 网络响应保存到缓存中,我的控制器非常简单,这里是:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
include_once APPPATH . 'models/presenters/Radio.php';
use Streame\Model\Presenter\Radio as Radio;
use Streame\Model\Presenter\Genre as Genre;
class Test extends MY_Controller {
public function index(){
$this->load->driver('cache');
if (! $cache_data = $this->cache->get('zzz')) {
$req = $this->send_req('radios', 'GET', array("size" => 5, "phrase" => "rock"));
$json = $req->json();
$top_50_radios = Radio::deserializeJsonArray($json["docs"]);
$cache_data = (object) $top_50_radios;
$this->cache->save('zzz', $cache_data, 60 * 60 * 12);
echo "\n</br>NOT CACHEEEEED"; var_dump($cache_data);
} else {
echo "\n</br>CACHEEEEED"; var_dump($cache_data);
}
shuffle($cache_data);
$data["random_radio"] = $cache_data[0]->permalink;
}
}
当我更改 config.php
中的 cache_path
时,我开始工作了,从无到现在:
$config['cache_path'] = APPPATH.'../../cache/';
但是现在,不知道从哪里开始,它又开始忽略缓存了,我唯一得到的是"NOT CACHED"。
我是运行nginx服务器中的框架,可能跟文件的权限有关系?
我不知道如果您更改缓存路径配置,您的问题是否会消失, 因为如果你留空它应该可以工作(你应该在你的应用程序文件夹中有一个缓存文件夹)
我要做的第一件事是检查变量是否正确保存
插入即可管理
var_dump($this->cache->cache_info());
将变量保存在缓存中后
如果您在此处获得正确的信息 - 我们开始朝着正确的方向前进 - 如果不是,您必须检查您的路径是否确实存在
很简单,chmod 777 -R cache/
成功了。