mzphp CACHE(缓存类)

在 mzphp 框架中缓存类现已支持:

  • memcache cache
  • file cache
  • redis cache

更多缓存引擎正在持续支持中。

缓存类的使用方法:

在 conf/conf.[ENV].php 配置文件中 开启任意一个缓存引擎:

'cache' => array(
        /*
        'memcache' => array(
            'host' => '127.0.0.1:11211',
            'pre' => 'mzphp_',
        ),
        'file' => array(
            'dir' => ROOT_PATH.'data/cachexxxxx/',
            'pre' => 'mzphp_',
        ),
        'redis' => array(
            'host' => '127.0.0.1',
            'port' => 19000,
            'table' => 'www',
            'pre' => 'mzphp_'
        ),
        */
    ),

### 多个缓存实例

**原型:**

```php
public static function instance($cache_name){}

调用:

// get default provider
$instance = CACHE::instance();
// get file provider
$file_cache = CACHE::instance('file');

您可以直接调用 CACHE::get($key) ,系统会默认初始化 配置文件中 cache 里的第一个下标的缓存服务器实例。

如果您需要使用 redis 等缓存服务器特殊命令,您可以像以下执行:

// get redis provider
$instance = CACHE::instance('redis');
// call redis lpop
echo $instance->lpop('mzphp');

检测缓存是否开启

file cache 检测目录是否正常读写

memcache 和 redis 检测服务器连接是否正常

原型:

public static function opened() {}

用法:

if(CACHE::opened()){
   // todo cache process
}

取得缓存

原型:

public static function get($key) {}

用法:

echo CACHE::get('who');
// memcached multi support
print_r(CACHE::get(array('who', 'are', 'you')));

设置缓存

原型:

public static function set($key, $val, $expire = 0) {}

用法:

if(CACHE::set('who', 'mzphp', 1000)){
   echo 'success';
}else{
   echo 'failure';
}

更新缓存

原型:

public static function update($key, $val, $expire) {}

用法:

if(CACHE::update('who', 'mzphp', 1000)){
   echo 'success';
}else{
   echo 'failure';
}

删除缓存

原型:

public static function delete($key) {}

用法:

if(CACHE::delete('who')){
   echo 'success';
}else{
   echo 'failure';
}

清空一个 CACHE 表

注:该方法在 file cache 中暂不支持。

原型:

public static function truncate($pre = '') {}

用法:

if(CACHE::truncate('')){
   echo 'success';
}else{
   echo 'failure';
}

开启锁

原型:

public static function lock($key, $expire = 10000, $max_lock_count = 1000, $lock_step_time = 5000) {}

用法:

//lock
if(CACHE::lock('you')){
   echo 'success';
}else{
   echo 'failure';
}
sleep(rand(10));
// finally
CACHE::unlock('you');

说明:

key:
是指要锁的键名
expire:
是否锁最多在CACHE中存活的时间(毫秒)
max_lock_count :
如果等待超过 max_lock_count(次) 以后,返回读锁失败。
lock_step_time:
当缓存锁住后,另一个进来的锁会 block 住当前进程(循环),
并以每次休眠 $lock_step_time(微秒)的时间来等待锁解开。
并发大时,建议适当改小该参数,提高 max_lock_count。
参数越小,解锁的可能性越大,但是对缓存服务器负载会变高。

解锁

原型:

public static function unlock($key) {}

用法:

请见 CACHE::lock 使用方法。

results matching ""

    No results matching ""