国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman使用GatewayWorker,過一段時(shí)間Redis報(bào)錯(cuò)

黑老怪

問題描述

運(yùn)行過一段時(shí)間就提示這個(gè),這是被Redis回收了鏈接嗎?

Workerman Redis Connection Error 2 client closed

程序代碼

#14 {main}Exception: Workerman Redis Connection Error 2 client closed in /www/wwwroot/soa2.0/WL/vendor/workerman/redis/src/Client.php:349
        Stack trace:
        #0 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Connection/TcpConnection.php(378): Workerman\Redis\Client->Workerman\Redis\{closure}()
        #1 /www/wwwroot/soa2.0/WL/vendor/workerman/redis/src/Client.php(467): Workerman\Connection\TcpConnection->send()
        #2 /www/wwwroot/soa2.0/WL/vendor/workerman/redis/src/Client.php(413): Workerman\Redis\Client->process()
        #3 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Connection/TcpConnection.php(646): Workerman\Redis\Client->Workerman\Redis\{closure}()
        #4 [internal function]: Workerman\Connection\TcpConnection->baseRead()
        #5 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
        #6 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(1638): Workerman\Events\Event->loop()
        #7 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(1429): Workerman\Worker::forkOneWorkerForLinux()
        #8 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(1403): Workerman\Worker::forkWorkersForLinux()
        #9 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(1788): Workerman\Worker::forkWorkers()
        #10 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(1724): Workerman\Worker::monitorWorkersForLinux()
        #11 /www/wwwroot/soa2.0/WL/vendor/workerman/workerman/Worker.php(562): Workerman\Worker::monitorWorkers()
        #12 /www/wwwroot/soa2.0/WL/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\Worker::runAll()
        #13 /www/wwwroot/soa2.0/WL/start.php(4): support\App::run()
175 1 0
1個(gè)回答

leedom

Redis 配置限制:
Redis 最大連接數(shù)(maxclients)已滿,新連接被拒絕后關(guān)閉。
Redis 超時(shí)設(shè)置(timeout)過短,空閑連接被服務(wù)器主動(dòng)關(guān)閉。
檢查 Redis 日志(通常在 redis.conf 中配置的 logfile 路徑),確認(rèn)是否有崩潰、內(nèi)存溢出(OOM)等異常。

maxclients 100000  # 根據(jù)服務(wù)器內(nèi)存調(diào)整
timeout 0  # 禁用自動(dòng)關(guān)閉空閑連接(推薦)

優(yōu)化 Workerman 客戶端連接管理
Workerman 的 Redis 客戶端支持連接斷開后自動(dòng)重連,需在初始化時(shí)配置 reconnect 參數(shù):

$redis = new Client([
    'host' => '127.0.0.1',
    'port' => 6379,
    'reconnect' => 3,  // 連接斷開后重試 3 次(每次間隔 1 秒)
]);

避免頻繁創(chuàng)建連接:
確保 Redis 客戶端實(shí)例被復(fù)用(如全局單例),而非每次請(qǐng)求創(chuàng)建新連接,減少連接開銷:

// 單例模式示例
class RedisClient {
    private static $instance;
    public static function getInstance() {
        if (!self::$instance) {
            self::$instance = new \Workerman\Redis\Client([
                'host' => '127.0.0.1',
                'port' => 6379,
            ]);
        }
        return self::$instance;
    }
}

// 使用時(shí)
$redis = RedisClient::getInstance();

檢查 Workerman 與 PHP 環(huán)境
更新 Workerman 及 Redis 客戶端:
舊版本可能存在連接處理 Bug,升級(jí)到最新穩(wěn)定版:

composer update workerman/workerman workerman/redis
  • 暫無評(píng)論
??