ホームページ  >  記事  >  バックエンド開発  >  PHP redis502エラーの問題を解決する方法

PHP redis502エラーの問題を解決する方法

藏色散人
藏色散人オリジナル
2022-01-28 10:03:552209ブラウズ

php redis502 エラーの解決策: 1. 「sudo apt-get install php5-redis」を使用するか、gitHub で phpredis をダウンロードします。 2. 再コンパイルしてインストールします。

PHP redis502エラーの問題を解決する方法

この記事の動作環境: Windows 7 システム、PHP バージョン 5.5.30、DELL G3 コンピューター

解決方法php redis502 エラーの問題?

##php redis set nginx 502 solution

PHP Version 5.5.30-1+deb.sury.org~trusty+1
redis 3.0.1,

php-redis 拡張機能は、pr.tar.gz バージョン 2.10 をダウンロードすることでインストールされます。

$redis->set('test', 'hello world') を実行し、nginx 502 エラーを報告します (nginx 502 エラーは本当に頭の痛い問題です)。

問題は $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);

## にあります。 #Reason php-redis 拡張機能のバージョン 2.10 です。低すぎる場合は、 sudo apt-get install php5-redis を使用するか、gitHub で

https://github.com/phpredis/phpredis

をダウンロードしてコンパイルしてインストールできます。

apt-get install インストールされているバージョンは 2.2.7 です。

 public function conn() {undefined
        try {undefined
            $this->_redis->pconnect($this->host, $this->port, $this->timeout);
            // Set client option. must AFTER connected
            //var_dump(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);exit();
           $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);
           //$this->_redis->setOption(0, 0);
            $this->_redis->auth("xxxrs");         // 此处是为 redis 配置的验证密码
 
            $this->connected = true;
 
        } catch (RedisException $e) {undefined
            throw new CHttpException(500, "Redis occurs an error:" . $e->getMessage());
        }
    }

赤いコード セクションを使用すると、502 エラーが発生します。緑色のコード部分は問題ありません。

setOption これはおかしなことでしょうか? php-redis apiを確認しました

$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);   // don't serialize data  不序列化数据
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);    // use built-in serialize/unserialize  用php内置的序列化
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);   // use igBinary serialize/unserialize 用扩展IGBINARY序列化
$redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys redis key前缀
 
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);  用此就报502

PHPの組み込みシリアル化を使用すると問題が発生するのはなぜですか?結局何が起こったのですか?

後で IGBINARY 拡張機能をインストールしましたが、それでも動作しませんでした。最後に、php-redis の最新バージョン 2.24 をインストールして再度実行しましたが、まったく問題ありませんでした。

2.24 バージョン php-redis ソース コード アドレス https://github.com/nicolasff/phpredis

= = ====================

Redis::__construct コンストラクター

$redis = new Redis( );

接続、オープンリンク redis サービス

パラメータ

ホスト: 文字列、サービスアドレス

ポート: int、ポート番号

timeout: float、リンク期間 (オプション、デフォルトは 0、リンク時間に制限なし)

注: redis.conf にも時間があります。デフォルトは 300

pconnect、popenアクティブに閉じられたリンクはありません。

redis モードを設定するには上記の

#setOption を参照してください。

redis で設定されたモードを表示するには getOption を参照してください。

ping で表示します。接続ステータス

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHP redis502エラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。