gpt4 book ai didi

php - 使用 PHPRedis 和 PHP-FPM 时如何关闭或重置 pconnect() 连接?

转载 作者:IT王子 更新时间:2023-10-29 00:05:33 25 4
gpt4 key购买 nike

使用 PHPRedis 和 Apache PHP-FPM 我正在​​使用 pconnect() 调用来重新使用连接 - 它在过去有助于防止连接数量爬升得太高。然而,如果我们的主要 redis 节点出现故障 - 我们会自动将从属节点提升为主节点,而旧的主节点变为只读。然而,pconnect() 仍然保持与旧 master 的连接 - 因此 set() 命令开始失败。

我们需要的是一种在不终止进程的情况下拆除这些持久连接的方法。有什么想法吗?

最佳答案

持久流由 PHP 内部提供,不成文法规定任何公开创建持久流的方法也应提供销毁它的方法。

PHP Redis 违反了这条法律,您根本无法从用户空间中销毁该持久流。

行动过程应该是 PR 所需方法的实现。

这是针对实现 Redis::pclose 的 PHP7 分支的补丁:https://gist.github.com/krakjoe/326eadc61bea38fdd6e6

请注意,pdisconnect 的代码基于现有的断开连接,这两个函数对我来说都很奇怪,并且对它们的返回值并不诚实。我假设某处有一些测试或代码依赖于这种陌生感,所以没有尝试修复它。

任何 PR 都应该提到这些函数看起来很奇怪,而 PHP7 是打破这些东西的最佳时机。

关于php - 使用 PHPRedis 和 PHP-FPM 时如何关闭或重置 pconnect() 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32916465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com