我们使用具有 10GB RAM 作为缓存服务器和phpredis作为 redis 客户端的 redis 2.6.14。我们都从同一个 redis 服务器写入和读取。
问题是,当流量变高时,我们仍然可以 connect() 这台机器,但是 ping() 会返回 false,是的,只有 false。connected_client 低于 100,used_memory 低于 1GB,qps 约为 1000,这一切看起来都很好。
我们已经检查了我们所知道的几乎所有内容,除了 ping() 在 phpredis/redis 中做了什么?在什么情况下 ping() 会返回错误?显然,当 ping() 错误时,我们的机器仍然可以连接。 https://github.com/nicolasff/phpredis#ping
任何想法?
我通过从 connect() 切换到 pconnect() 解决了这个问题;