Heim  >  Artikel  >  Backend-Entwicklung  >  Redis Multi-Datenbank-Auswahlfunktion Singleton-Klasse in PHP implementiert (ausführliche Erklärung)

Redis Multi-Datenbank-Auswahlfunktion Singleton-Klasse in PHP implementiert (ausführliche Erklärung)

墨辰丷
墨辰丷Original
2018-05-19 09:06:231787Durchsuche

In diesem Artikel wird hauptsächlich die Singleton-Klasse der von PHP implementierten Redis-Auswahlfunktion für mehrere Bibliotheken vorgestellt. Er kombiniert das Beispielformular, um den Singleton-Modus zu analysieren, der von PHP zur Implementierung der Multi-Bibliotheks-Auswahlfunktion der Redis-Datenbank verwendet wird Bedarf kann darauf verweisen

Die Details sind wie folgt:

Vorwort

Code

<?php
class MultiRedisConnect
{
  /**
   * hostname
   *
   * @var string
   */
  const REDISHOSTNAME = "127.0.0.1";
  /**
   * port
   *
   * @var int
   */
  const REDISPORT = 6379;
  /**
   * timeout
   *
   * @var int
   */
  const REDISTIMEOUT = 0;
  /**
   * password
   *
   * @var string
   */
  const REDISPASSWORD = "123456";
  /**
   * 类单例数组
   *
   * @var array
   */
  private static $instance = array();
  /**
   * redis连接句柄
   *
   * @var object
   */
  private $redis;
  /**
   * hash的key
   *
   * @var int
   */
  private $hash;
  /**
   * 私有化构造函数,防止类外实例化
   *
   * @param int $dbnumber
   */
  private function __construct ($dbnumber)
  {
    $dbnumber = (int) $dbnumber;
    $this->hash = $dbnumber;
    $this->redis = new Redis();
    $this->redis->connect(self::REDISHOSTNAME, self::REDISPORT, self::REDISTIMEOUT);
    $this->redis->auth(self::REDISPASSWORD);
    $this->redis->select($dbnumber);
  }
  private function __clone ()
  {}
  /**
   * 获取类单例
   *
   * @param int $dbnumber
   * @return object
   */
  public static function getRedisInstance ($dbnumber)
  {
    $hash = (int) $dbnumber;
    if (! isset(self::$instance[$hash])) {
      self::$instance[$hash] = new MultiRedisConnect($dbnumber);
    }
    return self::$instance[$hash];
  }
  /**
   * 获取redis的连接实例
   *
   * @return object
   */
  public function getRedisConnect ()
  {
    return $this->redis;
  }
  /**
   * 关闭单例时做清理工作
   */
  public function __destruct ()
  {
    $key = $this->hash;
    self::$instances[$key]->redis->close();
    self::$instances[$key] = null;
  }
}
?>

Verwandte Empfehlungen:

php-Implementierung von redisDefinition und Verwendung der Cache-Klasse

Was sind die Schritte für lange Verbindungen mit PHPRedis

Detaillierte Erläuterung der Schritte für Laravel zum Teilen einer Sitzung mit Redis

Das obige ist der detaillierte Inhalt vonRedis Multi-Datenbank-Auswahlfunktion Singleton-Klasse in PHP implementiert (ausführliche Erklärung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn