Thinkphp - 緩存的使用 (Memcache)

  ThinkPHP支持文件方式、共享內存方式和數據庫方式等緩存方式。 
由於ThinkPHP支持多種緩存,因此在使用以前緩存的方式和參數進行配置。php

緩存方式

  File、Apachenote、Apc、Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache數據庫

緩存參數

  根據不一樣的緩存方式存在不一樣的參數緩存

通用緩存參數 
expire 緩存有效期(默認由DATA_CACHE_TIME參數配置) 
length 緩存隊列長度(默認爲0) 
queue 緩存隊列方式(默認爲file 還支持xcache和apc)服務器

Memcachetcp

host 緩存服務器地址( 默認爲127.0.0.1) 
port 端口(默認爲MEMCACHE_PORT參數或者11211) 
timeout 緩存超時(默認由DATA_CACHE_TIME參數設置) 
persistent 長鏈接(默認爲false)post

File(文件緩存)性能

temp 緩存目錄(默認由DATA_CACHE_PATH參數配置)spa

獲取緩存實例

1. 使用配置文件方式(推薦)

config.phpcode

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
//緩存方式 'DATA_CACHE_TYPE' => 'Memcache', //v\ 緩存服務器地址 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211', //指定默認的緩存時長爲3600 秒,沒有會出錯 'DATA_CACHE_TIME' => '3600',
    
    
    
    
  • 1
  • 2
//獲取緩存實例 $cache = Cache::getInstance();

2.使用代碼的形式獲取

    
    
    
    
  • 1
  • 2
  • 3
  • 4
$Cache = Cache::getInstance('緩存方式','緩存參數') $Cache = Cache::getInstance('Memcache',array('host'=>'127.0.0.1','port'=>11211))); $Cache->setOptions('expire',3600); $Cache->setOptions('persistent',true);

存取緩存數據

緩存實例對象,快捷緩存方式orm

1.經過緩存實例對象進行操做

    
    
    
    
  • 1
  • 2
  • 3
$Cache->set('name','ThinkPHP'); // 緩存name數據 $value = $Cache->get('name'); // 獲取緩存的name數據 $Cache->rm('name'); // 刪除緩存的name數據

or

    
    
    
    
  • 1
  • 2
  • 3
$Cache->name = 'ThinkPHP'; $value = $Cache->name; Unset($Cache->name);

2. 快捷緩存方式

使用快捷緩存方式,要求必須已經配置緩存方式

  爲了進一步簡化緩存存取操做,ThinkPHP把全部的緩存機制統一成一個S方法來進行操做,因此在使用不一樣的緩存方式的時候並不須要關注具體的緩存細節。

S方法

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
// 使用data標識緩存$Data數據 S('data',$Data); // 緩存$Data數據3600秒 S('data',$Data,3600); // 獲取緩存數據 $Data = S('data'); // 刪除緩存數據 S('data',NULL);

cache方法

    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
$cache = cache(array('type'=>'xcache','expire'=>60)); $cache->set('name',$value); $cache->get('name'); $cache->rm('name'); or $cache = cache(array('type'=>'xcache','expire'=>60)); $cache->name = $value; echo $cache->name; unset($cache->name);

數據庫緩存

1. 數據庫查詢緩存

對於及時性要求不高的數據查詢,咱們可使用查詢緩存功能來提升性能,並且無需本身使用緩存方法進行緩存和獲取。

    
    
    
    
  • 1
  • 2
$Model->cache(true)->select(); $Model->cache('cache_name',60)->select();

2. SQL解析緩存

由於ThinkPHP的ORM機制,全部的SQL都是動態生成的,而後由數據庫驅動執行。 
因此若是你的應用有大量的SQL查詢需求,那麼能夠開啓SQL解析緩存以減小SQL解析提升性能。

    
    
    
    
  • 1
'DB_SQL_BUILD_QUEUE' => 'xcache',
相關文章
相關標籤/搜索