init
This commit is contained in:
96
core/cache/Memcache.php
vendored
Normal file
96
core/cache/Memcache.php
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
<?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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user