来自 PHP 的 Redis 连接缓慢
Posted
技术标签:
【中文标题】来自 PHP 的 Redis 连接缓慢【英文标题】:Redis connection slow from PHP 【发布时间】:2012-12-14 03:01:03 【问题描述】:我刚开始在我的应用程序中使用 Redis,但由于某种原因,从 php 到 Redis 服务器的初始连接几乎需要 1 秒。使用 Predis 时,延迟问题在第一次调用 get()
之前不会发生,如果我尝试手动连接,延迟会发生在通过 fsockopen()
的初始连接上。
我已经阅读了redis latency documentation,但这些信息似乎与我的情况无关。运行redis-cli --latency
似乎只会产生乱码。我想我的问题是解决此问题的最佳方法是什么?任何帮助将不胜感激。
Predis 客户端实例化:
$redis = new Predis\Client(array(
'host' => 'localhost',
'port' => 6379
));
以下是一些相关信息:
PHP 5.4.7 XAMPP Windows 7 64 位 16GB 内存 redis 服务器在本地运行在 6379 端口【问题讨论】:
尝试自己从 netcat 或类似的连接到 redis,看看延迟是否来自 redis 服务器。如果没有,请尝试以侦听模式从 php 登录到 netcat,以查看问题是否来自您的 php 套接字。至少你会知道哪一方有问题...... 【参考方案1】:在 windows 上总是使用127.0.0.1
而不是 localhost。
在最近的 Windows 版本中,名称 localhost
的解析是在 DNS 本身内处理的(它是帮助合并 IPv6 的“功能”),并且此 dns 查询总是需要 1 秒。
【讨论】:
以上是关于来自 PHP 的 Redis 连接缓慢的主要内容,如果未能解决你的问题,请参考以下文章