W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
緩存層的引入是為了解決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。
可以通過配置./core/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ù)表均可以緩存。
dzz_table基類中緩存機制的實現(xiàn)
protected $_pre_cache_key; //緩存主鍵名前綴,為空時表示此表不支持緩存 protected $_cache_ttl; //緩存時間,以秒為單位,0表示永久或相關(guān)配置文件中的默認值
dzz_table基類中緩存機制的方法
//緩存一個變量到緩存中,如果 KEY已經(jīng)在則會被覆蓋為新值//獲取指定KEY的緩存數(shù)據(jù)//清除指定KEY的緩存//更新一個已經(jīng)存在的KEY,只更新修改的字段//批量更新緩存,只更新已經(jīng)存在KEY的指定修改的字段//重置已經(jīng)存在的KEY的值//累加緩存數(shù)據(jù)中某字段的值
數(shù)據(jù)表類中增加下面的參數(shù)來啟用緩存
//例如: 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(); }
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: