【问题标题】:phpredis : RedisException [ 0 ]: protocol error, got 't' as reply type bytephpredis : RedisException [ 0 ]: 协议错误,得到 't' 作为回复类型字节
【发布时间】:2013-06-21 00:53:16
【问题描述】:

我们的 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模式)

我想知道您是否知道为什么会发生这种情况以及如何解决。

提前致谢

【问题讨论】:

    标签: php redis phpredis


    【解决方案1】:

    This issue on Github 看起来与你发生的事情相似。

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

    在一个单独但相关的说明中:停止使用 phpredis。 Predis 做同样的事情并且拥有更好的支持和更大的用户社区。​​p>

    【讨论】:

      【解决方案2】:

      不要使用 predis,因为它比 phpredis 慢得多。在这里查看例如:http://alekseykorzun.com/post/53283070010/benchmarking-memcached-and-redis-clients

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多