Maison > développement back-end > Problème PHP > Comment résoudre le problème d'erreur php redis502

Comment résoudre le problème d'erreur php redis502

藏色散人
Libérer: 2023-03-15 07:24:01
original
2273 Les gens l'ont consulté

Solution à l'erreur php redis502 : 1. Utilisez "sudo apt-get install php5-redis" ou téléchargez phpredis sur gitHub ; 2. Recompilez et installez.

Comment résoudre le problème d'erreur php redis502

L'environnement d'exploitation de cet article : système Windows 7, PHP version 5.5.30, ordinateur DELL G3

Comment résoudre le problème d'erreur php redis502 ?

nginx 502 lorsque php redis set résout

PHP Version 5.5.30-1+deb.sury.org~trusty+1
redis 3.0.1,
Copier après la connexion

en téléchargeant pr.tar L'extension php-redis installée par gz, version 2.10.

Exécutez $redis->set('test', 'hello world') et signalez l'erreur nginx 502 (l'erreur nginx 502 est vraiment un casse-tête).

Le problème est situé dans $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);

La raison est que l'extension php-redis version 2.10 est trop basse, vous pouvez utiliser sudo apt- get install php5-redis ou télécharger

https://github.com/phpredis/phpredis
Copier après la connexion

sur gitHub et installer en compilant.

apt-get install La version installée est la 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());
        }
    }
Copier après la connexion

Si vous utilisez la section de code rouge, une erreur 502 sera signalée, mais si vous utilisez la section de code vert, il n'y aura aucun problème .

setOption Est-ce une chose bizarre ? J'ai vérifié l'API php-redis

$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
Copier après la connexion

Pourquoi cela se passe-t-il mal lors de l'utilisation de la sérialisation intégrée de PHP ? Ce qui s'est passé?

Plus tard, j'ai installé l'extension IGBINARY, mais cela ne fonctionnait toujours pas. Enfin, j'ai installé la dernière version 2.24 de php-redis et je l'ai réexécuté, et il n'y a eu aucun problème.

adresse du code source php-redis de la version 2.24 https://github.com/nicolasff/phpredis

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

Redis ::__construct constructor

$redis = new Redis();

connecter, ouvrir le lien service redis

paramètres

hôte : chaîne, adresse du service

port : int, numéro de port

timeout : float, durée du lien (facultatif, la valeur par défaut est 0, aucune limite de durée de liaison)

Remarque : il y a aussi du temps dans redis.conf, la valeur par défaut est 300

pconnect, liens popen qui ne seront pas activement fermés

Reportez-vous à ce qui précède

setOption définit le mode redis

getOption Afficher le mode défini par redis

ping Afficher l'état de la connexion

Apprentissage recommandé : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal