【问题标题】:Why data fetching from Redis is very slow on AWS Instance为什么在 AWS Instance 上从 Redis 获取数据非常慢
【发布时间】:2016-04-14 11:44:05
【问题描述】:

首先,我使用以下链接在本地机器(Ubuntu 14.04)上安装了 redis。

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-redis https://www.digitalocean.com/community/tutorials/how-to-set-up-a-redis-server-as-a-session-handler-for-php-on-ubuntu-14-04

我正在使用哈希在 redis 中存储数据。当有 db 命中时,查询花费了大约 300 毫秒,从 redis 获取时花费了 60-70 毫秒。之后,我在我的 ubuntu AMI 上做了同样的事情,它是 m4 大,但不幸的是我没有看到响应时间有任何变化,有时它比 db hit 花费的时间更多。我不知道我在哪里失踪。

    $this->redis = New \Redis();
    $this->redis->connect('127.0.0.1', 6379);
    $this->redis-hset($id, $key, serialize($result));
    if($this->redis->hexists($id,$key)) {
         return $this->redis->hget($id, $key);
    }

而且我确信当它在 redis 中可用时它会从 redis 中获取数据。

【问题讨论】:

    标签: php ubuntu amazon-web-services redis


    【解决方案1】:

    我建议尝试另一种实例类型。 m4.large 只是 2 核实例类型,也许尝试 4 核?或者使用 AWS 弹性缓存 redis 服务。

    也可能会找到一些有用的信息here

    【讨论】:

    • Redis 是单线程的,增加核心数应该有任何效果(假设你只有一个 redis 实例)
    • @PascalLeMerrer 确实如此,但该服务器同时托管 Redis 和 PHP Web 服务器,可能还有其他东西,因此增加 CPU 的数量可能有助于测试整体性能。正如 enderv 建议的那样,迁移到 ElastiCache 等专用 Redis 服务器也有助于查明性能问题。
    【解决方案2】:

    基准序列化时间 - 对于更复杂的数据序列化/反序列化比实际写入 redis 的时间要长得多。 (查看http://kiss-web.blogspot.com/2016/02/memcached-vs-redisphpredis-vs-predis-vs.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      相关资源
      最近更新 更多