Maison > Article > développement back-end > Partage de code sur l'implémentation de classe singleton de la fonction de sélection multi-bibliothèques Redis en PHP
Cet article présente principalement la classe singleton de la fonction de sélection multi-bibliothèques Redis implémentée par PHP. Il combine l'exemple de formulaire pour analyser le mode singleton utilisé par PHP pour implémenter la fonction de sélection multi-bibliothèques de la base de données redis Friends. le besoin peut s'y référer
L'exemple de cet article décrit la classe singleton de fonction de sélection multi-bibliothèque Redis implémentée en PHP. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Avant-propos
Certains étudiants du groupe QQ ont demandé comment sélectionner plusieurs bibliothèques en redis, en utilisant php je l'ai implémenté, et j'espère que vous pourrez me donner plus de conseils
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; } } ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!