php - Phalcon配置各种Adapter设置为Redis时如何共享连接?
PHPz
PHPz 2017-04-11 10:33:04
[PHP讨论组]

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个连接出来
可以设置共享同一个连接吗?

PHPz
PHPz

学习是最好的投资!

全部回复(1)
阿神

你可以用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实例就是注入的实例,多次调用也是共享同一个连接
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号