<?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); } }