Php Redis比MySQL慢

Php Redis比MySQL慢,php,mysql,redis,Php,Mysql,Redis,我有两种方法,一种是查询数据库,另一种是从Redis缓存中检索数据 public function aaa() { for ($i = 0; $i < 1000; $i++) { $gl = DB::connection('webhesab')->table('gl_trans') ->where('memo_', 'LIKE', '%شعبه%') ->orWhere('account', '=',

我有两种方法,一种是查询数据库,另一种是从Redis缓存中检索数据

public function aaa()
{
    for ($i = 0; $i < 1000; $i++) {
        $gl = DB::connection('webhesab')->table('gl_trans')
            ->where('memo_', 'LIKE', '%شعبه%')
            ->orWhere('account', '=', 111001)
            ->where('dimension2_id', '<>', 1)
            ->orWhere('person_id', '=', 0)
            ->where('dimension2_id', '<>', 1)
            ->orWhere('type_no', '<>', 50)
            ->limit(10)
            ->get();
    }
}

public function bbb()
{
    for ($i = 0; $i < 1000; $i++) {

        $gl = cache()->get('gl_trans');
    }
}
公共功能aaa()
{
对于($i=0;$i<1000;$i++){
$gl=DB::connection('webhesab')->table('gl_trans'))
->式中('memo_uuuu'、'LIKE'、'%u1588;عبه%'))
->或其中('account','=',111001)
->其中('dimension2_id','',1)
->orWhere('person_id','=',0)
->其中('dimension2_id','',1)
->或其中('type_no','',50)
->限额(10)
->get();
}
}
公共职能bbb()
{
对于($i=0;$i<1000;$i++){
$gl=cache()->get('gl_trans');
}
}
缓存对象的值和查询值完全相同

但缓存比数据库查询慢得多。大约
aaa
长300毫秒,而
bbb
长1900毫秒。 为什么?问题出在哪里?

您应该发布cache()实现。如果没有这些,人们就无法帮助你解释它为什么慢

还有其他几点

  • 即使不使用管道或mget,redis也不应该那么长
  • 您可以使用管道或mget进一步加快redis的速度

  • 可能是因为在bbb的for循环中,您每次都会获取所有数据?为什么要使用for循环缓存?不只是像aaaSorry那样的10条记录,但我们需要有关您的redis缓存配置的更多信息,因为这样一行简单的代码没有提供任何有用的信息。您还应该检查是连接还是获取(或两者都有)太慢了。
    cache()
    函数包含什么?您是在每次迭代中重用连接还是创建新连接?