V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
thomaswang
V2EX  ›  问与答

PHP -fpm 长连接(pconnect)到 redis

  •  
  •   thomaswang · Apr 24, 2019 · 3246 views
    This topic created in 2573 days ago, the information mentioned may be changed or developed.
    addr=172.10.12.23:32639 fd=1018 name= age=6868 idle=46 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=set
    

    在 redis 执行 client list 显示 age 长短不一, 这是说明这个长连接会断掉然后重新建立,是 redis service 主动断掉这个链接还是 fpm 会断掉呢

    现在的问题是 php 在操作 redis 的时候, 偶尔会报“ read error on connection ”

    11 replies    2019-05-30 17:02:50 +08:00
    NjcyNzMzNDQ3
        1
    NjcyNzMzNDQ3  
       Apr 24, 2019
    长连接还是不要用 fpm 了吧,cli 模式常驻进程好点,swoole 的 redis 连接池可以用
    thomaswang
        2
    thomaswang  
    OP
       Apr 24, 2019
    @NjcyNzMzNDQ3 明白你的意思,swoole 那个在别的地方用了,这里没有用, 这个 fpm 不也是常驻内存的吗, 你怀疑 fpm 会断掉连接 redis 的 socket?
    nilai
        3
    nilai  
       Apr 24, 2019
    我记得 fpm 就是一个进程池管理协调的程序, 在空闲时,是有被 kill 掉的可能的。。
    NjcyNzMzNDQ3
        4
    NjcyNzMzNDQ3  
       Apr 24, 2019
    @thomaswang fpm 只有 master 进程是常驻,master 下子子 fpm 进程每个只能处理 3-5 个请求,处理完成后会结束进程,我琢磨着不太靠谱。
    NjcyNzMzNDQ3
        5
    NjcyNzMzNDQ3  
       Apr 24, 2019
    直接用 connect,用完就 close 就挺好,即使上了进程池 /常驻连接,如果你的业务用 redis 的耗时长,并发高了也照样等待啊。

    想控制连接数?有控制连接数的功夫还是优化业务吧。
    thomaswang
        6
    thomaswang  
    OP
       Apr 25, 2019
    @NjcyNzMzNDQ3 php-fpm 配置的 static 也是处理三五次就死掉吗
    thomaswang
        7
    thomaswang  
    OP
       Apr 25, 2019
    @NjcyNzMzNDQ3 短链,用过 close,time_wait 不会高吗
    thomaswang
        8
    thomaswang  
    OP
       Apr 25, 2019
    @NjcyNzMzNDQ3 不控制连接数, 优化业务, 如何优化呢, 是不用 redis 了吗
    NjcyNzMzNDQ3
        9
    NjcyNzMzNDQ3  
       Apr 25, 2019
    static 不是,redis 不是瓶颈(觉得 redis 扛不住就水平扩展),业务方面 zray/xhprof 扩展和开启 slowlog 都可以看出业务瓶颈
    thomaswang
        10
    thomaswang  
    OP
       Apr 25, 2019
    @nilai 我们的项目虽然没有多大的并发量,应该也不会让他空闲下来
    genglintong
        11
    genglintong  
       May 30, 2019
    pconnect 生命周期是和 fpm 一致的,fpm 死掉后,应该会重新建立连接吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3036 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 563ms · UTC 05:05 · PVG 13:05 · LAX 22:05 · JFK 01:05
    ♥ Do have faith in what you're doing.