V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lolizeppelin
V2EX  ›  程序员

openresty 的连接池好溜啊

  •  
  •   lolizeppelin · 2019-05-19 11:44:09 +08:00 · 3383 次点击
    这是一个创建于 2040 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚折腾这玩意第一次写 lua

    他的 redis 库说是支持连接池,但是代码超级简单压根没看出来怎么支持连接池的

    直接把 python 的连接池代码套了上去折腾了半天

    总觉得有点别扭回头又查了下他的连接池实现原理

    我操溜得不行...简直是投机!!用起来超级方便,cgi 的方式写代码也能直接池化...

    思路非常简单在 connect 上做手脚,如果 connect 的对象是池子里的直接返回就,如果是新的才真的 connect,然后链接次数计数器设置为 0

    应用层那边 connect 以后判断一下次数计数器,如果是新链接就执行下 connect 以后的认证之类的代码即可

    卧槽这思路超级投机倒把啊!!!

    5 条回复    2019-05-19 15:53:53 +08:00
    BBCCBB
        1
    BBCCBB  
       2019-05-19 13:13:19 +08:00
    不这样实现那怎么实现呢??????
    Athrob
        2
    Athrob  
       2019-05-19 13:22:44 +08:00 via iPhone
    这叫持久连接,不是连接池。
    Athrob
        3
    Athrob  
       2019-05-19 13:23:48 +08:00 via iPhone
    phpredis 的持久连接也是差不多这样实现的。
    lolizeppelin
        4
    lolizeppelin  
    OP
       2019-05-19 13:27:27 +08:00
    @Athrob
    咋不能叫连接池... 下层帮你实现了 池化管理,控制了连接数,复用了链接,还不叫连接池叫啥

    缺点也就是没应用层的心跳包而已
    当然这缺点其实蛮致命的,但是代码简化了好多
    Athrob
        5
    Athrob  
       2019-05-19 15:53:53 +08:00
    @lolizeppelin #4 没毛病
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5282 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 07:34 · PVG 15:34 · LAX 23:34 · JFK 02:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.