HEX
Server: nginx/1.22.1
System: Linux VM-16-9-centos 3.10.0-1160.99.1.el7.x86_64 #1 SMP Wed Sep 13 14:19:20 UTC 2023 x86_64
User: www (1001)
PHP: 7.3.31
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.sanjiangapp.com/core/cache/Memcache.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();
    }
}