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

怎么實現(xiàn)redis連接池?有沒有案例demo什么的? 我用框架里的redis incr自增之后的結(jié)果高并發(fā)起來數(shù)據(jù)會錯亂

helloworlds


不但不連貫 還有很多重復(fù)數(shù)據(jù)?
是什么情況?

3527 1 0
1個回答

walkor 打賞

用redis擴展。在onWorkerStart里初始化redis,不要在其它地方初始化redis。

  • helloworlds 2021-02-23

    <?php

    /**

    /**

    • 用于檢測業(yè)務(wù)代碼死循環(huán)或者長時間阻塞等問題
    • 如果發(fā)現(xiàn)業(yè)務(wù)卡死,可以將下面declare打開(去掉//注釋),并執(zhí)行php start.php reload
    • 然后觀察一段時間workerman.log看是否有process_timeout異常
      */
      //declare(ticks=1);
      use Workerman\Redis\Client;
      /**
    • 聊天主邏輯
    • 主要是處理 onMessage onClose
      */
      class Events
      {
      public static function onWorkerStart($businessWorker){
      global $redis;
      $redis = new Client('redis://'.Common::getEnv("REDIS.REDIS_HOST").':'.Common::getEnv("REDIS.REDIS_PORT"));
      }
      /**
      • 有消息時
      • @param int $client_id
      • @param mixed $message
        */
        public static function onMessage($client_id, $message)
        {
        try {
        global $redis;
        $key = 'live_socket_user_online';
        $redis->incr($key, function ($result, $redis) {
        var_dump($result);
        });
        } catch (\Exception $e) {
        file_put_contents("TCP連接錯誤JSON.txt", json_encode([$e]) . "\n", 8);
        }
        }

    }

  • helloworlds 2021-02-23

    是這樣嗎?

  • helloworlds 2021-02-23

    是因為異步的原因造成的 incr 結(jié)果不連貫嗎?

  • walkor 2021-02-23

    wokerman/redis是用于redis異步訂閱的。除此之外請使用redis擴展,不要用wokerman/redis

  • helloworlds 2021-02-24

    wokerman中無法使用redis連接池?

  • walkor 2021-02-24

    redis擴展是同步阻塞模式,用不到連接池。單例是性能最好的。

  • helloworlds 2021-02-24

    如果萬人同時在線,redis鏈接會同步阻塞掉,導(dǎo)致后進入的人無法連接redis,整個聊天系統(tǒng)崩潰掉

  • helloworlds 2021-02-24

    這種情況只能搞redis分布式?

  • walkor 2021-02-24

    redis足夠快,單機1秒可以支持幾萬請求,每個請求都是幾毫秒級別,基本上和非阻塞一樣快,不用擔(dān)心。
    還有并不是萬人在線就有一萬個redis連接,redis連接數(shù)和進程數(shù)一致,比如你開了32個進程,那么只有32個redis連接,并且連接是長連接,一直復(fù)用的,不會出現(xiàn)redis連接數(shù)過多無法連接redis的情況。

  • helloworlds 2021-02-24

    好的 感謝解答

年代過于久遠,無法發(fā)表回答
??