在 PHP 中将 Redis 封装成单例模式
发布:smiling 来源: PHP粉丝网 添加日期:2022-06-23 08:46:59 浏览: 评论:0
单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。
使用工厂方法来限制实例化过程,这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2018/7/16
- * Time: 14:19
- */
- /**
- * 实现同步实现同步redis
- */
- namespace app\common\lib\redis;
- class Predis{
- /**
- * 单例模式的变量
- * @var null
- */
- private static $_instance=null;
- public $redis = '';
- /**
- * 单例模式应用防止多次连接redis,提高性能
- * @return Predis|null
- */
- public static function getInstance(){
- if(is_null(self::$_instance) || emptyempty(self::$_instance)){
- self::$_instance = new self();
- }
- return self::$_instance;
- }
- /**
- *连接redis
- */
- private function __construct() {
- $this->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]);
- }
- }
Tags: Redis单例模式 PHP单例模式
- 上一篇:PHP实现微信支付及退款流程的实例详解
- 下一篇:最后一页
相关文章
- ·PHP单例模式总结教程(2015-04-04)
- ·PHP单例模式编写的PDO类的程序(2015-04-15)
- ·php设计模式——单例模式(Singleton)的常见应用场景(2015-04-15)
- ·php 设计模式之单例模式例子(2016-07-27)
- ·PHP设计模式之:单例模式的学习笔记(2016-07-29)
- ·PHP 单例模式优点意义及如何实现(2018-10-28)
- ·php单例模式实现方法分析(2021-05-16)
- ·PHP设计模式之单例模式原理与实现方法分析(2021-09-12)
- ·PHP单例模式应用示例【多次连接数据库只实例化一次】(2021-11-02)
- ·PHP设计模式之单例模式入门与应用详解(2022-01-26)
- ·PHP中用Trait封装单例模式的实现(2022-01-28)
- ·PHP实现单例模式建立数据库连接的方法分析(2022-02-11)
- ·php的单例模式及应用场景详解(2022-04-14)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)