Redis中connect与pconnect区别?

1.首先先介绍下connectpconnect的区别。

connect:脚本结束之后连接就释放了。

 

2.pconnect:脚本结束之后连接不释放,连接保持在php-fpm进程中。

所以使用pconnect代替connect,可以减少频繁建立redis连接的消耗。

 

 

 

redis手册中的介绍

  1. connect, open

       

  2. Description

    Connects to a Redis instance.

    连接到一个Redis实例

  3. Parameters

       

    host: string. can be a host, or the path to a unix domain socket
    host:
    字符串类型可以使一个HOST IP或者是一个UNIX DOMAIN SOCKET的路径

    port: int, optional
    port:
    整数型,Redis的运行端口

    timeout: float, value in seconds (optional, default is 0 meaning unlimited)
    timeout:
    浮点型,连接的市场,单位是秒,默认为0即连接没有时间限制

  4. Return Value

    BOOLTRUE on success, FALSE on error.

  5. Example

    $redis->connect('127.0.0.1', 6379);

    $redis->connect('127.0.0.1'); // port 6379 by default

    $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.

    $redis->connect('/tmp/redis.sock'); // unix domain socket.

 
  1. pconnect, popen

  1. Description

    Connects to a Redis instance or reuse a connection already established with pconnect/popen.

    pconnect/popen
    用于连接一个Redis的实例或者复用一个已经存在的实例。

    The connection will not be closed on close or end of request until the php process ends. So be patient on to many open FD's (specially on redis server side) when using persistent connections on many servers connecting to one redis server.

    这个连接将不会被主动关闭,比如使用close(),或者PHP执行结束这个连接都不会被主动关闭。当有大量的connect请求在redis服务器端时,使用持久化的连接对象。

    Also more than one persistent connection can be made identified by either host + port + timeout or host + persistent_id or unix socket + timeout.

    一个持久化的连接实例,可以使用HOST+PORT+TIMEOUT或者HOST+persistent_id或者SOCKET+TIMEOUT的方式创建。

    This feature is not available in threaded versions. pconnect and popen then working like their non persistent equivalents.

    pconnect函数和popen函数在线程版本中不能被使用。

  2. Parameters

    host: string. can be a host, or the path to a unix domain socket
    port: int, optional
    timeout: float, value in seconds (optional, default is 0 meaning unlimited)
    persistent_id: string. identity for the requested persistent connection

  3. Return Value

    BOOLTRUE on success, FALSE on error.

  4. Example

    $redis->pconnect('127.0.0.1', 6379);

    $redis->pconnect('127.0.0.1'); // port 6379 by default - same connection like before.

    $redis->pconnect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout and would be another connection than the two before.

    $redis->pconnect('127.0.0.1', 6379, 2.5, 'x'); // x is sent as persistent_id and would be another connection the the three before.

    $redis->pconnect('/tmp/redis.sock'); // unix domain socket - would be another connection than the four before.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值