php - Phalcon配置各种Adapter设置为Redis时如何共享连接?

 小女人的忧伤-- 发布于 2022-11-13 12:52

SessionAdapter

$session = new \Phalcon\Session\Adapter\Redis([
    'prefix' => '',
    'lifetime' => 86400,
    'host' => '127.0.0.1',
    'port' => 6379,
    'persistent' => false
]);

ModelMetaDataAdapter

$redisMetaData = new \Phalcon\Mvc\Model\MetaData\Redis([
    'prefix' => '',
    'lifetime' => 86400,
    'host' => '127.0.0.1',
    'port' => 6379,
    'persistent' => false
]);

Cache

$cache = new Phalcon\Cache\Backend\Redis([
    'prefix' => '',
    'lifetime' => 86400,
    'host' => '127.0.0.1',
    'port' => 6379,
    'persistent' => false
]);

如果这些都是用的同一台Redis,那一个请求不就会创建3个连接出来
可以设置共享同一个连接吗?

2 个回答
  • 试了下,连接数也是1的

    2022-11-13 13:00 回答
  • 你可以用di注入,注入的时候用setShared
    简单的例子

    $di = new \Phalcon\Di\FactoryDefault();
    $di->setShared('redis', function () {
        $redis = new Phalcon\Cache\Backend\Redis([
            'prefix' => '',
            'lifetime' => 86400,
            'host' => '127.0.0.1',
            'port' => 6379,
            'persistent' => false
        ]);
        return $redis;
    });

    用的时候直接从Di里面取就好

    $di = \Phalcon\Di::getDefault();
    $redis = $di['redis'];    // 这个redis实例就是注入的实例,多次调用也是共享同一个连接
    2022-11-13 13:00 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有