為了獲取更多最新內(nèi)容及功能更新,請直接訪問我們的首頁以查看DzzOffice筆記的最新地址。
DzzOffice支持兩種緩存機制:內(nèi)存緩存和內(nèi)置緩存。通過配置緩存,可以極大的提高DzzOffice的并發(fā)和承載能力。
在系統(tǒng)配置文件/config/config.php中,存在以下一行代碼:
$_config['cache']['type'] = 'sql';
這就是DzzOffice系統(tǒng)內(nèi)置的緩存方式,如填寫為'sql',則使用數(shù)據(jù)庫緩存;如填寫為'file',則使用文件緩存。建議設(shè)置為'sql'以使用數(shù)據(jù)庫緩存,因為其速度相較于文件緩存更快。當這個配置改成'file'時,系統(tǒng)生成的緩存將被寫入文件中。緩存文件存儲在"/data/cache"目錄下。當服務(wù)器承受較高MySQL壓力時,可通過file的文件緩存機制緩解MySQL的壓力,通過服務(wù)器IO換取MySQL的讀寫頻率,降低MySQL的壓力。
緩存的工作原理:
在開發(fā)過程中,當調(diào)用緩存時,只需確認所需的緩存名稱,然后調(diào)用
loadcache($cachenames, $force)
即可獲取先前保存的緩存內(nèi)容。
引入緩存層的目的是為了解決MYSQL自身在高并發(fā)處理方面的性能瓶頸。目前,緩存層采用主流的Key-Value對形式。市場上有很多內(nèi)存級緩存產(chǎn)品。DzzOffice目前支持的內(nèi)存優(yōu)化接口包括Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache和Redis五種。系統(tǒng)將根據(jù)當前服務(wù)器環(huán)境依次選擇合適的接口。在單服務(wù)器環(huán)境中,推薦使用APC;在多服務(wù)器環(huán)境中,推薦使用Redis或Memcache。緩存可以通過配置/config/config.php來啟用,配置選項如下:
$_config['memory']['prefix'] = 'dzzoffice_';
$_config['memory']['redis']['server'] = ''; // redis 服務(wù)器地址
$_config['memory']['redis']['port'] = 6379; // redis 服務(wù)器端口
$_config['memory']['redis']['pconnect'] = 1; // redis 是否長久連接
$_config['memory']['redis']['timeout'] = 0; // redis 服務(wù)器連接超時
$_config['memory']['redis']['serializer'] = 1; // redis::SERIALIZER選項
$_config['memory']['memcache']['server'] = ''; // memcache 服務(wù)器地址
$_config['memory']['memcache']['port'] = 11211; // memcache 服務(wù)器端口
$_config['memory']['memcache']['pconnect'] = 1; // memcache 是否長久連接
$_config['memory']['memcache']['timeout'] = 1; // memcache 服務(wù)器連接超時
$_config['memory']['apc'] = 0; // 啟動對 apc 的支持
$_config['memory']['xcache'] = 0; // 啟動對 xcache 的支持
$_config['memory']['eaccelerator'] = 0; // 啟動對 eaccelerator 的支持
數(shù)據(jù)層是以表為單位的類文件,所有表類均繼承自dzz_table基類,基類實現(xiàn)了與緩存操作相關(guān)的函數(shù)。理論上,所有數(shù)據(jù)表均可進行緩存。
protected $_pre_cache_key; //緩存主鍵名前綴,為空時表示此表不支持緩存
protected $_cache_ttl; //緩存時間,以秒為單位,0表示永久或相關(guān)配置文件中的默認值
store_cache($id, $data, $cache_ttl = null, $pre_cache_key = null)
fetch_cache($ids, $pre_cache_key = null)
clear_cache($ids, $pre_cache_key = null)
update_cache($id, $data, $cache_ttl = null, $pre_cache_key = null)
update_batch_cache($ids, $data, $cache_ttl = null, $pre_cache_key = null)
reset_cache($ids, $pre_cache_key = null)
increase_cache($ids, $data, $cache_ttl = null, $pre_cache_key = null)
public function __construct() {
$this->_table = 'app_open';
$this->_pk = 'extid';
$this->_pre_cache_key = 'app_open_'; //緩存主鍵名前綴,為空時表示此表不支持緩存
$this->_cache_ttl =0; //緩存時間,以秒為單位,0表示永久或相關(guān)配置文件中的默認值
parent::__construct();
}
更多建議: