PHP MongoDB持久连接

时间:2013-02-10 21:41:18

标签: php mongodb

默认情况下,持久连接处于活动状态,没有明确要求,我想知道它的设置,例如最大连接生存期,最大持久连接数......

是否有可能优化这些设置或至少看到它们的值?

phpinfo()并没有告诉我太多: - /

2 个答案:

答案 0 :(得分:2)

似乎无法以这种方式配置连接设置,只能为某些连接操作设置超时:http://www.php.net/manual/en/mongoclient.construct.php

对于最大持久连接数(http://www.php.net/manual/en/mongo.connecting.pools.php),PHP MongoDB驱动程序实际上非常严格地保存了它创建的连接数,如上所述:

  

对于每个凭据组合,对于每种连接类型(ReplicaSet / standalone / mongos),驱动程序的最新版本不再具有池的概念,并且每个进程仅维护一个连接。

显然,连接数量取决于您使用的连接类型数量以及已启动的PHP进程数量,而不是配置中的某些值。

答案 1 :(得分:0)

由于mongo 1.2.3不推荐使用连接池,因此无法再获取或设置池的大小(存储在那里的连接,以便在有需求时获取)。连接由PHP管理,这意味着它存储“哈希”,其中包含标识唯一连接的主机,端口,数据库名称,进程ID等信息。

如果您可以访问,而不是通过PHP,则可以通过实际的 mongod 进程设置最大并发连接数(持久性是您提到的新默认值)。在服务器端,您可以使用参数--maxConns = 5000运行mongod实例来控制它的最大连接。

持续连接生命周期尚不可调整或可查看。你不会真的需要它,因为新连接会覆盖旧连接。未使用的持久连接不会造成伤害,新的连接会被注册,将旧的连接推出。因此,生命周期取决于每次新连接的数量。