內(nèi)存級(jí)緩存

2018-02-07 14:35 更新

 緩存層的引入是為了解決MYSQL自身對(duì)高并發(fā)處理的性能瓶頸,目前緩存層采用主流的Key-Value對(duì)形式。內(nèi)存級(jí)的緩存產(chǎn)品很多, 目前DzzOffice支持的內(nèi)存優(yōu)化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis 五種,系統(tǒng)將會(huì)依據(jù)當(dāng)前服務(wù)器環(huán)境依次選用接口,單服務(wù)器環(huán)境中推薦使用APC,多服務(wù)器環(huán)境中推薦使用Redis或Memcache。

可以通過配置./core/config/config.php來開啟緩存,配置項(xiàng)如下:     

$_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ù)器連接超時(shí)

$_config['memory']['redis']['serializer'] = 1;         // redis::SERIALIZER選項(xiàng)

$_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ù)器連接超時(shí)

$_config['memory']['apc'] = 0; // 啟動(dòng)對(duì) apc 的支持

$_config['memory']['xcache'] = 0; // 啟動(dòng)對(duì) xcache 的支持

$_config['memory']['eaccelerator'] = 0; // 啟動(dòng)對(duì) eaccelerator 的支持


     數(shù)據(jù)層是以表為單位的類文件,所有表類都繼承dzz_table基類,基類實(shí)現(xiàn)緩存操 作的相關(guān)函數(shù)。理論上所有的數(shù)據(jù)表均可以緩存。

  • dzz_table基類中緩存機(jī)制的實(shí)現(xiàn)

protected $_pre_cache_key;  //緩存主鍵名前綴,為空時(shí)表示此表不支持緩存 
protected $_cache_ttl;     //緩存時(shí)間,以秒為單位,0表示永久或相關(guān)配置文件中的默認(rèn)值




  • dzz_table基類中緩存機(jī)制的方法


//緩存一個(gè)變量到緩存中,如果 KEY已經(jīng)在則會(huì)被覆蓋為新值//獲取指定KEY的緩存數(shù)據(jù)//清除指定KEY的緩存//更新一個(gè)已經(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_';  //緩存主鍵名前綴,為空時(shí)表示此表不支持緩存	
         $this->_cache_ttl =0;                 //緩存時(shí)間,以秒為單位,0表示永久或相關(guān)配置文件中的默認(rèn)值		
         parent::__construct();	
         }
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)