php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache
/**
* 工廠方法模式
* -------------
* @author zhangqian
* @version v1.0
*/
//緩存接口
interface cache {
public function init($conf);
public function setVal($key , $val);
public function getVal($key);
public function delVal($key);
public function autoIncreament($key);
}
//mem
class mymemCache implements cache {
//mymem連接
public function init($conf)
{
echo '初始化mymem';
}
public function setVal($key , $val)
{
echo 'mem設(shè)置值';
}
public function getVal($key)
{
echo 'mem獲取值';
}
public function delVal($key)
{
echo 'mem刪除值';
}
public function autoIncreament($key)
{
echo 'mem自增';
}
}
//redis
class redisCache implements cache {
//redis連接
public function init($arr)
{
echo '初始化redis';
}
public function setVal($key , $val)
{
echo 'redis設(shè)置值';
}
public function getVal($key)
{
echo 'redis獲取值';
}
public function delVal($key)
{
echo 'redis刪除值';
}
public function autoIncreament($key)
{
echo 'redis自增';
}
}
class cacheFactory
{
private static $obj;
private static $type;
private static $conf;
private static $allowtype = array('mymem','redis');
private static function getConfig()
{
//include_once('config.php');加載配置文件 獲取緩存的類型 及緩存的配置參數(shù)
global $_SC;
self::$type = $_SC['cachetype'];//做空值的判斷
self::$conf = $_SC['cacheconf'];//做空值的判斷
}
//外部調(diào)用創(chuàng)建緩存對(duì)象
public static function CreateOperation(){
self::getConfig();
try
{
$error = '未知的緩存類型';
if(in_array(self::$type , self::$allowtype))
{
$type = self::$type.'Cache';
self::$obj = new $type;
self::$obj->init(self::$conf);//連接
}
else
throw new Exception($error);
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
exit;
}
return self::$obj;
}
}
$_SC = array();
$_SC['cachetype'] = 'redis';//mymem
$_SC['cacheconf'] = array();
$cache = cacheFactory::CreateOperation();
$cache->setVal('a',1);
echo '
';
$a = $cache->getVal('a');
echo '
';
$cache->delVal('a');
?>
總結(jié)
以上是生活随笔為你收集整理的php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: javascript php 传值,js
- 下一篇: ueditor编辑器php上传配置,ph