2017-07-31 32 views
2

我的用例是一些在某些时候与redis交互的孤立调用。redis - 获取与PHP客户端的连接时间

问题是我看到一个超长的等待时间来获取连接,在我的LAN环境中尝试了prediscredis。超过1-3个客户端线程,我的PHP脚本连接到redis并选择数据库所需的时间范围从18ms700ms

通常,我会使用连接池或缓存连接并在所有线程中使用它,但我认为这不能通过PHP在不同的脚本中完成。

我能做些什么来加快速度?

+0

也许这是由网络问题引起的,ping redis服务器ip来测试它。 – GuangshengZuo

+0

没有网络问题。你有没有类似的用例,你没有看到我的任何问题? – Buffalo

回答

0

显然,Predis需要persistent标志集:https://github.com/nrk/predis/wiki/Connection-Parameters)以及FPM,这在Windows和Linux上都很令人沮丧,更不用说在切换到FPM之前进行测试。

我已经切换到Phpredis(https://github.com/phpredis/phpredis),这是一个PHP模块/扩展,现在都很好。连接时间使用$redis->pconnect()大幅下降,并且在多个脚本/线程间保持一致。注意:它在处理错误方面与Predis有些不同(它在实例化对象时失败,而不是在运行第一个调用时,它返回false而不是null,因为不存在的值)如果从Predis切换出来。