在專案中,合理的使用緩存對性能有較大的説明。 ThinkPHP提供了方便的緩存方式,包括資料緩存、靜態緩存和查詢緩存等,支援包括檔方式、APC、Db、Memcache、Shmop、Sqlite、Redis、 Eaccelerator和Xcache在內的動態資料緩存類型,以及17813.html">可定制的靜態緩存規則,並提供了快捷方法進行存取操作。
資料緩存
在ThinkPHP中進行快取作業,一般情況下並不需要直接操作緩存類,因為系統內置對快取作業進行了封裝,3.1版本推薦的資料緩存方法是cache方法,基本的用法是:
1 緩存初始化
cache(array('type'=>'xcache','expire'=>60));緩存初始化可以支援的參數根據不同的緩存方式有所區別,常用的參數是:
expire 緩存有效期(時間為秒) prefix 緩存標識首碼 type 緩存類型
核心版本只有HTTP://www.aliyun.com/zixun/aggregation/19352.html">File緩存方式的支援,其他的緩存方式支援需要下載單獨的緩存驅動,並放入系統目錄的Extend/ Driver/Cache/下面,否則會出現不支援緩存類型的錯誤提示。 有些緩存方式會有一些自身特殊的參數,例如Memcache緩存,還需要配置其他的參數:
cache(array('type'=>'memcache','host'=>'192.168.1.10','port'=>'11211','prefix'=>'think',' expire'=>60));對於全域的緩存方式,一般我們建議添加prefix(緩存首碼)參數用以區分不同的應用,以免混淆。
2 緩存設置
cache('a',$value);會按照緩存初始化時候的參數進行緩存資料,也可以在緩存設置的時候改變參數,例如: cache('a',$value,300);// 緩存資料300秒甚至改變之前的緩存方式或者更多的參數: cache('a',$value,array('type'=>'file','expire'=>300));// 採用檔方式緩存資料300秒如果你在緩存設置的時候採用上面的陣列方式傳入參數的話, 會影響到後面的緩存存取。
3 緩存讀取
$value = cache('a');緩存讀取的是前面緩存設置的值,這個值會受緩存初始化或者緩存設置的時候傳入的參數影響。
如果緩存標識不存在或者已經過期,則返回false,否則返回緩存值。
4 緩存刪除
刪除緩存標識為name的緩存資料。
如果要切換緩存方式,可以再次進行緩存初始化操作或者使用下面的方式: 如果你設置了緩存首碼的話,對應的快取作業只是對應該緩存首碼標識的,不會影響其他的緩存。
資料緩存可以支援緩存佇列,簡單的說就是可以限制緩存的數量,只需要在初始化的時候指定length參數:
cache(array('type'=>'xcache','length'=>100,'expire'=>60));設置了length參數後,系統只會緩存最近的100條緩存資料。