当前位置 : 主页 > 网络编程 > PHP >

KVDB php class for SAE

来源:互联网 收集:自由互联 发布时间:2021-06-30
?phpclass kvdb{ public $kvdb; //SAE kvdb public function __construct() { $this-kvdb = new SaeKV(); $this-kvdb-init(); } public function get($key) { return $this-kvdb-get($key); } public function set($key, $value) { return $this-kvdb-set($ke
 
<?php
class kvdb
{
    public $kvdb; //SAE kvdb
  
    public function __construct()
    {
        $this->kvdb = new SaeKV();
        $this->kvdb->init();
    }
  
    public function get($key)
    {
        return $this->kvdb->get($key);
    }
  
    public function set($key, $value)
    {
        return $this->kvdb->set($key, $value);
    }
  
    public function replace($key, $value)
    {
        return $this->kvdb->replace($key, $value);
    }
  
    public function delete($key)
    {
        return $this->kvdb->delete($key);
    }
  
    public function mget($array)
    {
        return $this->kvdb->mget($array);
    }
  
    public function pkrget($prefix, $num=10, $offset='')
    {
        return $this->kvdb->pkrget($prefix, $num, $offset);
    }
  
    public function errmsg()
    {
        return $this->kvdb->errmsg();
    }
  
  
    /**
     * kvdb cache
     */
    public function cache ($action, $key, $value='', $timeout=300)
    {
        $key = 'cache_' . $key;
        switch ($action)
        {
            case 'get':
                return $this->cache_get($key);
                break;
  
            case 'set':
                return $this->cache_set($key, $value, $timeout);
                break;
  
            case 'delete':
                return $this->cache_delete($key);
                break;
              
            default:
                return false;
                break;
        }
    }
  
    public function cache_get ($key)
    {
        $data = $this->get($key);
        if ($data)
        {
            $array = unserialize($data);
            if (isset($array['timeout']) && ($array['timeout'] > time()) )
                $data = $array['data'];
            else
                $data = ''; // 应用场景中此处缓存马上会更新,无法删除操作。
        }
        return $data;
    }
  
    public function cache_set ($key, $value, $timeout)
    {
        $array = array(
            'data' => $value,
            'timeout' => time() + $timeout
        );
        return $this->set($key, serialize($array));
    }
  
    public function cache_delete ($key)
    {
        return $this->delete($key);
    }
}

网友评论