美文网首页PHP经验分享PHP开发
SWOOLE开发实时聊天系统(六)工厂+单例模式的Redis配置

SWOOLE开发实时聊天系统(六)工厂+单例模式的Redis配置

作者: 公式般欢笑 | 来源:发表于2020-03-09 00:09 被阅读0次

首先我们需要在根目录下新建一个db目录,然后在db目录下新建一个RedisInstance类文件,内容如下:

<?php
namespace db;
class RedisInstance
{
    protected static $db;
    private function __construct(){}

    public static function getInstance(){
        if(!self::$db){
            //获取config配置文件
            $params=PARAMS[CHATENV];
            self::$db = new \Redis();
            self::$db->connect('127.0.0.1', 6379);
        }
        return self::$db;
    }
}

这是一个单例,在每次获取Redis实例的时候,只能通过getInstance的方法来获取,这样我们在第一次使用Redis的时候,就可以让实例永驻内存,以后所有的Redis操作都基于同一份实例。
在/pool目录下新建pool.php文件,内容如下:

<?php
namespace pool;
use db\RedisInstance;
class pool{
    public static function redis(){
        return RedisInstance::getInstance();
    }
}

在业务逻辑中要想获取Redis实例,必须通过pool::redis的方式来获取。
这样做的好处是:我们可以在不修改业务代码的前提下,对Redis实例类进行任何操作,即使是获取Redis实例的方法改变,也不会影响业务流程。

相关文章

网友评论

    本文标题:SWOOLE开发实时聊天系统(六)工厂+单例模式的Redis配置

    本文链接:https://www.haomeiwen.com/subject/juqbrhtx.html