Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么在AWS实例上从Redis获取数据非常慢_Php_Ubuntu_Amazon Web Services_Redis - Fatal编程技术网

Php 为什么在AWS实例上从Redis获取数据非常慢

Php 为什么在AWS实例上从Redis获取数据非常慢,php,ubuntu,amazon-web-services,redis,Php,Ubuntu,Amazon Web Services,Redis,首先,我使用以下链接在本地机器(Ubuntu 14.04)上安装了redis 我正在使用哈希在redis中存储数据。当数据库命中时,查询耗时约300毫秒;从redis获取时,查询耗时60-70毫秒。在那之后,我在我的UbuntuAMI上做了同样的事情,它是m4大的,但不幸的是,我没有看到响应时间有任何变化,有时它花费的时间比db hit要长。我不知道我在哪里失踪了 $this->redis = New \Redis(); $this->redis->conn

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

我正在使用哈希在redis中存储数据。当数据库命中时,查询耗时约300毫秒;从redis获取时,查询耗时60-70毫秒。在那之后,我在我的UbuntuAMI上做了同样的事情,它是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获取数据。

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


可能还会找到一些有用的信息。

基准序列化时间-对于更复杂的数据,序列化/非序列化比实际写入redis要长得多。(检查)

Redis是单线程的,增加内核数量应该会有任何效果(假设您只有一个Redis实例)@pascallemerer这是真的,但此服务器同时托管Redis和PHP web服务器,可能还有其他东西,因此增加cpu数量可能有助于测试整体性能。按照enderv的建议,转移到专用的Redis服务器,如ElastiCache,也有助于查明性能问题。