内存级缓存

2018-02-07 14:35 更新

 缓存层的引入是为了解决MYSQL自身对高并发处理的性能瓶颈,目前缓存层采用主流的Key-Value对形式。内存级的缓存产品很多, 目前DzzOffice支持的内存优化接口有 Memcache、eAccelerator、Alternative PHP Cache(APC)、Xcache、Redis 五种,系统将会依据当前服务器环境依次选用接口,单服务器环境中推荐使用APC,多服务器环境中推荐使用Redis或Memcache。

可以通过配置./core/config/config.php来开启缓存,配置项如下:     

$_config['memory']['prefix'] = 'dzzoffice_';  

    

$_config['memory']['redis']['server'] = ''; // redis 服务器地址

 $_config['memory']['redis']['port'] = 6379; // redis 服务器端口

 $_config['memory']['redis']['pconnect'] = 1; // redis 是否长久连接

 $_config['memory']['redis']['timeout'] = 0; // redis 服务器连接超时

$_config['memory']['redis']['serializer'] = 1;         // redis::SERIALIZER选项

$_config['memory']['memcache']['server'] = ''; // memcache 服务器地址

$_config['memory']['memcache']['port'] = 11211; // memcache 服务器端口

$_config['memory']['memcache']['pconnect'] = 1; // memcache 是否长久连接

$_config['memory']['memcache']['timeout'] = 1; // memcache 服务器连接超时

$_config['memory']['apc'] = 0; // 启动对 apc 的支持

$_config['memory']['xcache'] = 0; // 启动对 xcache 的支持

$_config['memory']['eaccelerator'] = 0; // 启动对 eaccelerator 的支持


     数据层是以表为单位的类文件,所有表类都继承dzz_table基类,基类实现缓存操 作的相关函数。理论上所有的数据表均可以缓存。

  • dzz_table基类中缓存机制的实现

protected $_pre_cache_key;  //缓存主键名前缀,为空时表示此表不支持缓存 
protected $_cache_ttl;     //缓存时间,以秒为单位,0表示永久或相关配置文件中的默认值




  • dzz_table基类中缓存机制的方法


//缓存一个变量到缓存中,如果 KEY已经在则会被覆盖为新值//获取指定KEY的缓存数据//清除指定KEY的缓存//更新一个已经存在的KEY,只更新修改的字段//批量更新缓存,只更新已经存在KEY的指定修改的字段//重置已经存在的KEY的值//累加缓存数据中某字段的值
  • 数据表类中增加下面的参数来启用缓存

//例如: public function __construct() {		
         $this->_table = 'app_open';		
         $this->_pk    = 'extid';		
         $this->_pre_cache_key = 'app_open_';  //缓存主键名前缀,为空时表示此表不支持缓存	
         $this->_cache_ttl =0;                 //缓存时间,以秒为单位,0表示永久或相关配置文件中的默认值		
         parent::__construct();	
         }
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号