**FrPHP 緩存機制說明**
在項目開發過程中我們經常會利用緩存來緩解數據查詢、復雜運算帶來的服務器壓力以應對高并發!
FrPHP 封裝了簡潔高效的緩存方案,支持文件、memcache、redis三種形式的緩存方式。
**設置緩存類型及相關配置 /FrPHP/config.php(全局配置)**
~~~
<?php
return?array(
????......
????//支持的緩存類型
????'allowCacheType'?????=>?array('file',?'memcache',?'redis'),
????//緩存設置
????'cache'?????????????=>?array(
????????'type'??????????=>?'memcache',?//支持類型?:?file?[文件型],?memcache?,?redis
????????//以下配置為?memcache?及?redis?類型緩存的必須設置
????????'host'??????????=>?'127.0.0.1',?//主機地址
????????'port'??????????=>?'11211',?????//端口?memcache?一般端口為?11211,?redis?一般為?6379
????????'pre'???????????=>?'frphp_'?????//緩存變量前綴
????)
);
~~~
統一規則的緩存操作方法【**控制器成員方法**】:
**cache($name, $id = null, $queryMethod, $timer =3600, $isSuper = true)?**
php 控制器內置了統一的緩存處理函數 cache,此方法會動態的判斷緩存的有效性,并根據實際情況去調用數據查詢、運算等方法。
參數:
~~~
1、緩存名稱
2、影響id?【可以是字符串的組合】
3、數據車查詢函數
4、有效期【可選參數,默認?3600秒】
5、是否為全局緩存【可選參數,默認?是】
???【是】緩存名稱格式:緩存前綴+緩存名稱+影響id
???【否】緩存名稱格式:緩存前綴+控制器名稱+方法名稱+緩存名稱+影響id
~~~
**調用:**
在控制器內容直接使用 cache 函數即可:
~~~
$this->cache('test',?'1002abc',?'__查詢函數名稱');
~~~
**刪除指定的緩存?removeCache($name, $id = null, $isSuper = true)
**參數:
~~~
1、緩存名稱
2、影響id
3、是否全局
~~~
**清空緩存?clearCache**
使用?clearCache 函數可以快速的情況所有緩存
**開發環境下一句代碼關閉全部緩存**
在入口頁面添加以下代碼即可關閉所有緩存!
~~~
define('FR_CLOSE_CACHE',?true);
~~~
為什么要這樣??
您可以預先寫好緩存代碼,數據在開發時是實時的,當開發完成、測試完畢刪除這行代碼,服務器端就可以完美運行在緩存環境下了 ^\_^
- 第一章:快速開始
- 1.1 簡介和條款
- 1.2 環境和偽靜態
- 1.3 目錄結構及命名
- 1.4 初始化、原理、分組
- 1.5 兼容7.2php
- 第二章 控制器和路由
- 2.1 創建控制器
- 2.2 基礎控制器
- 2.3 URL解析
- 2.4 自定義路由
- 2.5 URL路由生成
- 第三章 數據和模型
- 3.1 數據庫的配置
- 3.2 獲取數據庫對象
- 3.3 數據庫操作
- 3.4 數據分頁詳情
- 3.5 事務操作&處理
- 3.6 數據驗證
- 3.7 表單驗證
- 3.8 全局模型創建與調用
- 第四章 視圖
- 4.1 視圖文件的創建
- 4.2 視圖調用及引用
- 4.3 視圖文件路徑模式
- 第五章 會話機制
- 5.1 cookie 操作
- 5.2 文件型 SEssion
- 5.3 session[memcache]
- 5.4 session[redis]
- 第六章 緩存機制
- 6.1 緩存的簡介和配置
- 6.2 文件型緩存
- 6.3 memcache 形式的緩存
- 6.4 redis 形式的緩存
- 第七章 配置 常量 語言
- 7.1 全局配置&分組配置
- 7.2 預定義常量
- 7.3 語言包使用說明
- 第八章 工具擴展
- 8.1 函數小工具
- 8.2 工具類函數
- 第九章 安全配置擴展
- 9.1 框架安全部署
- 9.2 常規安全配置
- 9.3 如何去擴展
- 附錄:擴展工具類
- 一 、圖片處理類
- 二、文件上傳類
- 三、IP地址獲取類