peixunguanwang/core/cache/Memcache.php
2022-01-24 10:43:35 +08:00

96 lines
1.9 KiB
PHP

<?php
/**
* @copyright (C)2016-2099 Hnaoyun Inc.
* @author XingMeng
* @email hnxsh@foxmail.com
* @date 2017年10月24日
* Memcache缓存类
*/
namespace core\cache;
use core\basic\Config;
class Memcache implements Builder
{
protected static $memcache;
protected $conn;
// 禁止直接实例化
private function __construct()
{}
private function __clone()
{
error('禁止克隆实例!');
}
// 单一实例获取
public static function getInstance()
{
if (! self::$memcache) {
self::$memcache = new self();
}
return self::$memcache;
}
// 初始化连接
protected function conn()
{
if (! $this->conn) {
$this->conn = new Memcache();
$server = Config::get('cache.server');
if (is_multi_array($server)) {
foreach ($server as $value) {
$this->conn->addserver($value['host'], $value['port']);
}
} else {
$this->conn->addserver($server['host'], $server['port']);
}
}
return $this->conn;
}
// 设置值
public function set($key, $value)
{
$memcache = $this->conn();
return $memcache->set($key, $value);
}
// 读取值
public function get($key)
{
$memcache = $this->conn();
return $memcache->get($key);
}
// 删除
public function delete($key)
{
$memcache = $this->conn();
return $memcache->delete($key);
}
// 清理所有
public function flush()
{
$memcache = $this->conn();
return $memcache->flush();
}
// 版本信息
public function status()
{
$memcache = $this->conn();
return $memcache->getExtendedStats();
}
// 关闭连接
public function __destruct()
{
$memcache = $this->conn();
$memcache->close();
}
}