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个连接出来
可以设置共享同一个连接吗?
试了下,连接数也是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实例就是注入的实例,多次调用也是共享同一个连接