Laravel框架中實現使用阿里云ACE緩存服務(2)_PHP教程
推薦:Laravel中擴展Memcached緩存驅動實現使用阿里云OCS緩存這篇文章主要介紹了Laravel中擴展Memcached緩存驅動實現使用阿里云OCS緩存,本文擴展了一個支持SASL 認證模式的Memcached緩存驅動,需要的朋友可以參考下 Laravel 是我最近用得非常多而且越用就越喜歡的一款PHP框架,由于沒有向下兼容的歷史包袱,完全面向對象的風格,借
這段代碼比較簡單,不過要特別注意一下 get($key) 方法的實現。標準 memcached 以及 ACE 的緩存對象的 get 方法都是key有效時返回對應的緩存值,否則返回false,而在 Laravel 4 中,是通過檢測 get 方法返回的是否 null 來做判斷,所以這里需要處理一下,返回緩存值或者null。
AceMemcachedStore類已經創建好了,接下來在 bootstrap/start.php 文件中擴展 Cache:
打開 bootstrap/start.php, 添加以下代碼:
代碼如下:
// 擴展名為 ace 的緩存驅動
Cache::extend('ace', function($app)
{
// 從 app/config/cache.php 文件中讀取 "ace" 的值
$space = $app['config']['cache.ace'];
// 從 app/config/cache.php 文件中讀取 "prefix" 的值
$prefix = $app['config']['cache.prefix'];
// 創建 \Ace\AceMemcachedStore 對象
$store = new \Ace\AceMemcachedStore($space, $prefix);
// 創建并返回 \Illuminate\Cache\Repository 對象
return new \Illuminate\Cache\Repository($store);
});
指定系統使用 'ace' 作為緩存驅動:打開 app/config/cache.php,找到 'driver' => '...' 所在行,修改為:'driver' => 'ace'.
使用和限制
通過以上操作,就可以在 Laravel 4 中調用 ACE 的緩存服務,使用上與平常的用法完全一致,比如:
代碼如下:
// 添加緩存,有效時間10分鐘
Cache::put('my_key', 'my value', 10);
// 讀取緩存
Cache::get('my_key')
// 判斷緩存是否存在
Cache::has('my_key')
// 數據查詢緩存
$users = DB::table('users')->remember(10)->get();
但是由于 ACE 緩存對象本身的限制,只能刪除指定 key 的緩存對象,不能遍歷、全量操作,因此 Cache::flush() 方法就不能使用。在上面的 AceMemcachedStore 對象中,flush 方法沒有做任何操作,只是返回 false.
分享:php函數mysql_fetch_row、assoc、array、object的區別一、mysql_fetch_row 這個函數是從結果集中取一行作為枚舉數據,從和指定的結果標識關聯的結果集中取得一行數據并作為數組返回。每個結果的列儲存在一個數組的單元中,偏移量從 0 開始。 注意,這里是從0開始偏移,也就是說不能用字段名字來取值,只能用索引來取值。例
- Laravel中擴展Memcached緩存驅動實現使用阿里云OCS緩存
- php函數mysql_fetch_row、assoc、array、object的區別
- include(),require(),include_once(),require_once()的區別
- 基于GD2圖形庫的PHP生成圖片縮略圖類代碼分享
- 支持png透明圖片的php生成縮略圖類分享
- php面向對象中static靜態屬性與方法的內存位置分析
- php中get_object_vars()方法用法實例
- php面向對象中static靜態屬性和靜態方法的調用
- php延遲靜態綁定實例分析
- php定時執行任務設置詳解
- 遷移PHP版本到PHP7
- php include類文件超時問題處理
- 相關鏈接:
- 教程說明:
PHP教程-Laravel框架中實現使用阿里云ACE緩存服務(2)。