thinkphp有哪些缓存范例

thinkphp有哪些缓存范例

navicat怎么运行sql文件

navicat运行sql文件的方法:首先打开电脑上的Navicat并连接到数据库;接着在指定数据库的位置右键单击,选择运行SQL文件;然后点击选择文件的选项,并从电脑中选择要执行的SQL文件;最后点击开始,等到显示为Finish即可。

ThinkPHP供应了轻易的缓存体式格局,包括数据缓存、静态缓存和查询缓存等,支撑包括文件体式格局、APC、Db、Memcache、Shmop、Sqlite、Redis、Eaccelerator和Xcache在内的动态数据缓存范例,以及可定制的静态缓存划定规矩,并供应了疾速要领举行存取操纵。

数据缓存

Thinkphp缓存文件的设置

Home是我竖立的前台项目,在Home\Conf\config.php找到缓存的设置文件,设置以下:

<?php   
   return array(       
   'DB_TYPE'=>'mysql',       
   'DB_HOST'=>'127.0.0.1',       
  'DB_NAME'=>'w3note',       
   'DB_USER'=>'root',       
  'DB_PWD'=>'123456',       
  'DB_PORT'=>'3306',       
  'DB_PREFIX'=>'w3_',       
  'DATA_CACHE_TYPE'=>'file',//设置缓存体式格局为file       
  'DATA_CACHE_TIME'=>'600',//缓存周期600秒       
 );       
 ?>

Thinkphp缓存函数的运用

在thinkphp中,运用疾速缓存函数S()举行缓存,其用法以下:

S('data',$Data);//运用data标识缓存$Data数据  
S('data',$Data,600);// 缓存$Data数据600秒  
 $Data = S('data');// 猎取缓存数据  
S('data',NULL);// 删除缓存数据

实例演示

<?php       
 // 本类由体系自动天生,仅供测试用处       
  class IndexAction extends Action{       
    public function index(){       
        //假如有缓存,则读取缓存数据       
        //假如没有缓存,则读取数据库当中的数据放入缓存       
        $lists=S('lists');                     
        if(emptyempty($lists)){                           
          $news=M('news');   
          $lists=$news->select();   
          S('lists',$lists,600);   
          echo '这是直接读取数据库的数据';       
           }   
        dump($list);  
 ?>

接见http://127.0.0.1/Home/index.php/Index/index,

第一次接见:

这是直接读取数据库的数据

array(10) {  
   [0] => array(12) {  
     ["id"] => string(1) "1"  
     ["catid"] => string(2) "13"  
     ["title"] => string(4) "thinkphp的缓存手艺"  
     ["content"] => string(8) "thinkphp的缓存手艺"  
     ["tags"] => string(4) "缓存"  
     ["thumb"] => string(0) ""  
     ["description"] => string(7) "thinkphp的缓存手艺"  
     ["inputtime"] => string(10) "1348370202"  
     ["posid"] => string(1) "1"  
     ["ord"] => string(1) "2"  
     ["hits"] => string(1) "1"  
     ["status"] => string(1) "1"  
 }

第二次接见:

array(10) {  
   [0] => array(12) {  
     ["id"] => string(1) "1"  
     ["catid"] => string(2) "13"  
     ["title"] => string(4) "thinkphp的缓存手艺"  
     ["content"] => string(8) "thinkphp的缓存手艺"  
     ["tags"] => string(4) "缓存"  
     ["thumb"] => string(0) ""  
     ["description"] => string(7) "thinkphp的缓存手艺"  
     ["inputtime"] => string(10) "1348370202"  
     ["posid"] => string(1) "1"  
     ["ord"] => string(1) "2"  
     ["hits"] => string(1) "1"  
     ["status"] => string(1) "1"  
 }

申明:第一次运行时,会打印出如上面所示信息,革新一下页面后,少了 “ 这是直接读取数据库的数据” ,申明读取的是先前天生的缓存数据。

相干引荐:《ThinkPHP教程》

疾速缓存

假如你仅仅是愿望用文件的体式格局缓存一些简朴的数据,而且没有有用期的观点,那末体系还供应了一个疾速缓存要领F能够用来更快的操纵。

疾速缓存Data数据,默许保存在DATA_PATH目次下面

F('data',$Data);

疾速缓存Data数据,保存到指定的目次

F('data',$Data,TEMP_PATH);

猎取缓存数据

$Data = F('data');

删除缓存数据

F('data',NULL);

F要领支撑自动建立缓存子目次,在DATA_PATH目次下面缓存data数据,假如User子目次不存在,则自动建立:

F('User/data',$Data);

3.1.2版本最先F要领支撑运用通配符批量删除功用,运用以下:

F('User/*',NULL);

示意删除DATA_PATH.’User/’目次下面的数据缓存。

体系内置的数据字段信息缓存就是用了疾速缓存机制。

查询缓存

关于实时性要求不高的数据查询,我们能够运用查询缓存功用来进步机能,而且无需本身运用缓存要领举行缓存和猎取。

APP/config.php设置:

'DATA_CACHE_TIME'   => 60, // 数据缓存有用期 0示意永远缓存
'DATA_CACHE_TYPE'   => 'File',
 // 数据缓存范例,支撑:File|Db|Apc|Memcache|Shmop|Sqlite|Xcache|Apachenote|Eaccelerator
'DB_SQL_BUILD_CACHE' => true,
'DB_SQL_BUILD_LENGTH' => 20, // SQL缓存的行列长度
'DATA_CACHE_PATH' => TEMP_PATH,

查询缓存功用支撑一切的数据库,而且支撑一切的缓存体式格局和有用期。

在运用查询缓存的时刻,只须要挪用Model类的cache要领,比方:

$Model->cache(true)->select();

假如运用了cache(true) ,则在查询的同时会依据当前的查询SQL天生查询缓存,默许状况下缓存体式格局采纳DATA_CACHE_TYPE参数设置的缓存体式格局(体系默许值为File示意采纳文件体式格局缓存),缓存有用期是DATA_CACHE_TIME 参数设置的时候,也能够零丁制订查询缓存的缓存体式格局和有用期:

$Model->cache(true,60,'xcache')->select();

示意当前查询缓存的缓存体式格局为xcache,而且缓存有用期为60秒。

一样的查询,假如没有运用cache要领,则不会猎取或许天生任何缓存,即便是之前挪用过Cache要领。

查询缓存只是供内部挪用,假如愿望查询缓存开放给其他顺序挪用,能够指定查询缓存的Key,比方:

$Model->cache('cache_name',60)->select();

则能够在外部经由过程S要领直接猎取查询缓存的内容,

$value = S('cache_name');

除了select要领以外,查询缓存还支撑find和getField要领,以及他们的衍生要领(包括统计查询和动态查询要领)。详细运用的时刻能够依据须要挑选缓存体式格局懈弛存有用期。

SQL剖析缓存

除了查询缓存以外,ThinkPHP还支撑SQL剖析缓存,由于ThinkPHP的ORM机制,一切的SQL都是动态天生的,然后由数据库驱动实行。

所以假如你的运用有大批的SQL查询需求,那末能够开启SQL剖析缓存以削减SQL剖析进步机能。要开启SQL剖析缓存,只须要设置:

'DB_SQL_BUILD_CACHE' => true,

即可开启数据库查询的SQL建立缓存,默许缓存体式格局为文件体式格局,还能够支撑xcache和apc体式格局缓存,只须要设置:

'DB_SQL_BUILD_QUEUE' => 'xcache',

我们晓得,一个项目的查询SQL的量可能会异常庞大,所以有必要设置下缓存的行列长度,比方,我们愿望SQL剖析缓存不凌驾20条纪录,能够设置:

'DB_SQL_BUILD_LENGTH' => 20, // SQL缓存的行列长度

注重:只要查询要领才支撑SQL剖析缓存

php依赖注入的三种方式

php中依赖注入的三种方式分别有:一、构造器注入。二、setter方法注入。三、接口注入

静态缓存

要运用静态缓存功用,须要开启HTML_CACHE_ON参数,而且运用HTML_CACHE_RULES设置参数设置静态缓存划定规矩文件 。

虽然也能够在运用设置文件中定义静态缓存划定规矩,然则发起是在模块设置文件中为差别的模块定义静态缓存划定规矩。

静态划定规矩定义

静态划定规矩的定义体式格局以下:

'HTML_CACHE_ON' => true, // 开启静态缓存
'HTML_CACHE_TIME' => 60, // 全局静态缓存有用期(秒)
'HTML_FILE_SUFFIX' => '.shtml', // 设置静态缓存文件后缀
'HTML_CACHE_RULES' => array( // 定义静态缓存划定规矩
 // 定义花样1 数组体式格局
 '静态地点' => array('静态划定规矩', '有用期', '附加划定规矩'), 
 // 定义花样2 字符串体式格局
 '静态地点' => '静态划定规矩', 
)

定义花样1采纳数组体式格局 便于零丁为某个静态划定规矩设置差别的有用期,定义花样2采纳字符串体式格局定阅静态划定规矩,同时采纳HTML_CACHE_TIME设置的全局静态缓存有用期。

静态缓存文件的根目次在HTML_PATH定义的途径下面,而且只要定义了静态划定规矩的操纵才会举行静态缓存。 而且静态缓存支撑差别的存储范例。 静态缓存仅在GET要求下面有用。

静态地点

静态地点包括下面几种定义花样:

第一种是定义全局的操纵静态划定规矩,比方定义一切的read操纵的静态划定规矩为:

'read'=>array('{id}',60)

个中,{id}

示意取$_GET[‘id’]

为静态缓存文件名,第二个参数示意缓存60秒。

第二种是定义全局的控制器静态划定规矩,比方定义一切的User控制器的静态划定规矩为:

'user:'=>array('User/{:action}_{id}','600')

个中,{:action}

示意当前的操纵称号

第三种是定义某个控制器的操纵的静态划定规矩,比方,我们须要定义亚博控制器的read操纵举行静态缓存

'亚博:read'=>array('{id}',0)

第四种体式格局是定义全局的静态缓存划定规矩,这个属于特别状况下的运用,任何模块的操纵都实用,比方:

'*'=>array('{$_SERVER.REQUEST_URI|md5}'),

示意依据当前的URL举行缓存。

静态划定规矩

静态划定规矩是用于定义要天生的静态文件的称号,静态划定规矩的定义要确保不会争执,写法能够包括以下状况:

1.运用体系变量

包括 _GET、_REQUEST、_SERVER、_SESSION、_COOKIE

花样:

{$_×××|function}

比方:

{$_GET.name} 
{$_SERVER.REQUEST_URI|md5}

2.运用框架特定的变量

{:module} 、{:controller} 和{:action}

离别示意当前模块名、控制器名和操纵名。

比方:

{:module}/{:controller}_{:action}

3.运用_GET变量

{var|function}也就是说 {id}实在等效于 {$_GET.id}

4.直接运用函数

{|function} 比方:{|time}

5.支撑夹杂定义

比方我们能够定义一个静态划定规矩为:

'{id},{name|md5}'

在{}以外的字符作为字符串看待,假如包括有”/”,会自动建立目次。

比方,定义下面的静态划定规矩:

{:module}/{:action}_{id}

则会在静态目次下面建立模块称号的子目次,然后写入操纵名_id.shtml 文件。

静态缓存有用期

单元为秒。假如不定义,则会猎取设置参数HTML_CACHE_TIME的设置值,假如定义为0则示意永远缓存。

附加划定规矩

一般用于对静态划定规矩举行函数运算,比方:

'read'=>array('Think{id},{name}','60', 'md5')

翻译后的静态划定规矩是

md5('Think'.$_GET['id']. ', '.$_GET['name']);

navicat怎么设置关键字大写

点击navicat的菜单栏【格式】菜单,先来设置【美化SQL选项】,在美化SQL选项设置对话框中,要勾选【关键字大写】,然后点击【美化SQL】时关键字就会大写。

Up Next:

宝塔面板装置php失利

宝塔面板装置php失利