phpredis:RedisException [0]:协议错误,得到't'作为回复类型字节

时间:2013-06-24 13:32:32

标签: php redis phpredis

我们的2个网站在生产过程中使用redis服务器进行php和html缓存。我们不时会遇到一些错误:

> 22.php:2013-06-22 15:09:00 --- ERROR: +++ protocol error, got '"' as reply type byte
> 22.php:2013-06-22 15:09:00 --- ERROR: +++ protocol error, got '"' as reply type byte
> 22.php:2013-06-22 15:09:16 --- ERROR: +++ protocol error, got '<' as reply type byte
> 22.php:2013-06-22 15:09:51 --- ERROR: +++ protocol error, got '<' as reply type byte
> 22.php:2013-06-22 15:10:31 --- ERROR: +++ protocol error, got '<' as reply type byte
> 22.php:2013-06-22 15:11:22 --- ERROR: +++ protocol error, got '<' as reply type byte

如果我重新启动服务器上的apache,服务器会停止几天......然后再过3到4天就会再次回来。

我们正在使用phpredis 2.2.2和php 5.4.14,我正在使用pconnect并且php是用线程安全编译的(可能是问题)Redis服务器是2.6.12并且出于安全原因我们正在经历haproxy(使用tcp模式配置)

我想知道你是否知道为什么会这样,以及如何解决这个问题。

提前致谢

2 个答案:

答案 0 :(得分:0)

This issue on Github看起来与你发生的情况类似。

记录收到错误时发生的Redis命令,然后验证它们是否有效。如果这只是一个无效的Redis命令的错误消息,我不会感到惊讶。

单独但相关的说明:停止使用phpredis。 Predis做同样的事情,有更好的支持和更大的用户社区。

答案 1 :(得分:0)

不要使用predis,因为它对phpredis来说要慢得多。点击此处查看:http://alekseykorzun.com/post/53283070010/benchmarking-memcached-and-redis-clients