PHP Mongodb驱动1.5:如何使用连接池?

我正在使用PHPLIB 1.4 + PHP mongodb-1.5(PECL)。 如何设置连接池? 我搜索了但所有结果都是旧版本。</ p>
</ div>

展开原文

原文

I'm using PHPLIB 1.4 + PHP mongodb-1.5(PECL). How to set up connection pool? I searched but all results are for older version.

1个回答



PHP驱动程序使用 libmongoc 的单线程客户端模式,它不实现连接池。 </ p>

请参阅 mongo-php-driver: 问题#688 :</ p>


任何单线程
应用程序都不需要连接池,除非您使用的是异步PHP框架(例如 Amp,
ReactPHP)。 在这些情况下,您可能需要实现自己的
驱动程序,因为我们无法将libmongoc的IO与PHP
事件循环集成。 驱动程序不支持多线程PHP应用程序(例如pthreads,forking)
。</ p>
</ blockquote>

PHP驱动程序使用连接和拓扑持久性而不是连接池 从版本1.2.0 +。</ p>

MongoDB \ Driver \ Manager :: __ construct(),从其参数(即URI字符串和数组选项)创建哈希。 驱动程序将尝试为该哈希查找以前持久的 libmongoc </ code>客户端对象。 如果找不到散列的现有客户端,则将创建一个新客户端(并保留以供将来使用)。 </ p>

查看更多信息 MongoDB PHP 连接处理。</ p>
</ div>

展开原文

原文

The PHP driver uses libmongoc's single-threaded client mode, which does not implement connection pools.

See mongo-php-driver: issues#688:

Connection pools should not be needed for any single-threaded application, unless you're using an async PHP framework (e.g. Amp, ReactPHP). In those cases, you'd probably need to implement your own driver as we provide no way to integrate libmongoc's IO with a PHP event loop. Multi-threaded PHP applications (e.g. pthreads, forking) are not supported by the driver.

Instead of connection pooling, the PHP driver uses connection and topology persistence since version 1.2.0+.

When MongoDB\Driver\Manager::__construct() is invoked, a hash is created from its arguments (i.e. URI string and array options). The driver will attempt to find a previously persisted libmongoc client object for that hash. If an existing client cannot be found for the hash, a new client will be created (and persisted for future use).

See more information MongoDB PHP Connection Handling.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐