如何开启codeigniter 3.0(CI3.0)中的页面缓存和数据库缓存?

导语:这个文章内容与WordPress无关,只是叶子在开发过程中遇到了,就写下来。开始叶子也走了很多弯路的,希望大家看了以后,就不要再走弯路了。

页面缓存

codeigniter 3.0开启页面缓存很简单,就在控制器(controllers)中添加一行代码就是可以,这样会在application > cache 的目录下面产生缓存文件。注意,这个目录要有读写权限。

     $this->output->cache(10); 

10表示缓存文件10分钟过期。下面的代码是控制器Device.php的index函数,叶子在里面加了缓存代码。Device.php是叶子自己写的业务代码。

public function index()
{
   //开启缓存
   $this->output->cache(10); 
   if ($_SESSION['LOGGED_IN'] == true){
   $data = array(
            'treeview' => '10004',
            'treeviewmenu' => '24004',
            'menu' => $this->menumodel->get_menu()
           );
   $datacss["cssdata"] = "";
   $datascripts["scripts"] = "/static/js/zwgj.js";
   $this->load->view('/global/header',$datacss);
   $this->load->view('/global/sidebar', $data);
   $this->load->view('device');
   $this->load->view('/global/footer',$datascripts);
   }else{
   redirect('login');
   }
}

数据库缓存

codeigniter 3.0开启数据库缓存很简单,有两种方法,叶子这里说的是开启自动的数据库全局缓存。修改application > config > database.php文件,将cache_on参数改为TRUE,cachedir参数填写目录路径,如下。

$tnsname = '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST)))';


$db['default'] = array(
	'dsn'	=> '',
	'hostname' => $tnsname,
	'username' => 'test',
	'password' => 'test',
	'database' => '',
	'dbdriver' => 'oci8',
	'dbprefix' => '',
	'pconnect' => TRUE,
	'db_debug' => TRUE,
	'cache_on' => TRUE,
	'cachedir' => '/www/application/dbcache',
	'char_set' => 'zhs16gbk',
	'dbcollat' => '',
	'swap_pre' => '',
  'autoinit' => TRUE,
  'stricton' => FALSE
);

注意,/www/application/dbcache,这个路径是从根目录开始的绝对路径,dbcache需要自己创建,并要有读写权限。叶子连接的是ORACLE数据库,连接其他数据库开启缓存也一样。

路径最好写全路径,叶子开始写的相对路径,缓存总是不成功,改绝对路径就好了。

结束

上面说的codeigniter 3.0的缓存是利用文件缓存的方式,如果想切换到memcached上去进行页面缓存和数据库缓存,叶子不知道怎么实现,如果有大神知道的话,指导一下就好。

发表评论

邮箱地址不会被公开。 必填项已用*标注