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