Home>Article>Backend Development> Encapsulate Redis into singleton mode in PHP
The singleton pattern is one of the simplest forms of design patterns. The purpose of this pattern is to make an object of a class the only instance in the system. To achieve this, you start by instantiating it on the client side. Therefore, it is necessary to use a mechanism that only allows the generation of unique instances of the object class, "blocking" all access to the object that is intended to be generated. Use factory methods to limit the instantiation process. This method should be a static method (class method), because there is no point in having an instance of the class generate another unique instance.
redis = new \Redis(); $result = $this->redis->connect(config('redis.host'), config('redis.port')); if($result==false){ throw new \Exception('redis connect fail'); } } /** *redis set方法的应用 * @param $key * @param $value * @param int $time * @return bool|string */ public function set($key,$value,$time=0){ if(!$key){ return ''; } if(is_array($value)){ $value = json_encode($value); } if(!$time){ return $this->redis->set($key,$value); } return $this->redis->setex($key,$time,$value); } /** * redis get方法 * @param $key * @return string */ public function get($key){ if(!$key){ return ''; } return $this->redis->get($key); } /** * 获取有序列表的结合 * @param $key * @return array */ public function sMembers($key) { return $this->redis->sMembers($key); } /** * 获取list的元素值结合 */ public function lRange($key){ var_dump($key); return $this->redis->lRange($key,0,-1); } /** * 魔术方法__call */ public function __call($name, $arguments) { echo $name.PHP_EOL; print_r($arguments); if(count($arguments) != 2) { return ''; } $this->redis->$name($arguments[0], $arguments[1]); } }
The above is the detailed content of Encapsulate Redis into singleton mode in PHP. For more information, please follow other related articles on the PHP Chinese website!