Heim  >  Artikel  >  Backend-Entwicklung  >  Redis Multi-Bibliothek-Auswahlfunktion Singleton-Klassencode-Sharing in PHP implementiert

Redis Multi-Bibliothek-Auswahlfunktion Singleton-Klassencode-Sharing in PHP implementiert

巴扎黑
巴扎黑Original
2017-09-08 14:51:111250Durchsuche

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

Das Beispiel in diesem Artikel beschreibt die in PHP implementierte Singleton-Klasse der Redis-Auswahlfunktion für mehrere Bibliotheken. Teilen Sie es allen als Referenz mit. Die Einzelheiten lauten wie folgt:

Vorwort

Einige Schüler in der QQ-Gruppe fragten, wie man mehrere auswählt Bibliotheken in Redis, ich habe es mit PHP implementiert und hoffe, dass Sie mir weitere Ratschläge geben können

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;
  }
}
?>

Das obige ist der detaillierte Inhalt vonRedis Multi-Bibliothek-Auswahlfunktion Singleton-Klassencode-Sharing in PHP implementiert. 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