美文网首页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