php redis502 오류 해결 방법: 1. "sudo apt-get install php5-redis"를 사용하거나 gitHub에서 phpredis를 다운로드합니다. 2. 다시 컴파일하고 설치합니다.
이 문서의 운영 환경: Windows 7 시스템, PHP 버전 5.5.30, DELL G3 컴퓨터
php redis502 오류 문제를 해결하는 방법은 무엇입니까?
php redis 설정으로 문제가 해결될 때 nginx 502
PHP Version 5.5.30-1+deb.sury.org~trusty+1 redis 3.0.1,
pr.tar를 다운로드하면 gz 버전 2.10에서 설치되는 php-redis 확장 프로그램을 사용할 수 있습니다.
$redis->set('test', 'hello world')를 실행하고 nginx 502 오류를 보고합니다(nginx 502 오류는 정말 골치 아픈 문제입니다).
문제는 $this->_redis->setOption(Redis::OPT_SERIALIZER,Redis::SERIALIZER_PHP);
이유는 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 constructor
$redis = new Redis();
connect, 오픈 링크 redis service
parameters
host: 문자열, 서비스 주소
port: int, 포트 번호
timeout : 부동, 링크 기간(선택 사항, 기본값은 0, 링크 시간 제한 없음)
참고: redis.conf에도 시간이 있으며 기본값은 300
pconnect, 적극적으로 닫히지 않는 링크를 엽니다
위 내용을 참고하세요
setOption은 redis 모드를 설정합니다
getOption redis가 설정한 모드 보기
ping 연결 상태 보기
추천 학습: "PHP 비디오 튜토리얼"
위 내용은 PHP redis502 오류 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!