为什么我的Laravel Memcache需要太长时间才能检索数据?

时间:2019-05-27 17:53:44

标签: php laravel memcached

我正在制作一个简单的larvel应用程序以显示memcached的用法。我正在使用的操作系统是ubuntu。数据库中的记录为50k。

我成功安装了内存缓存并在其中保存了数据,但是问题是,当我从内存缓存中检索数据时,它花费的时间与从数据库中检索所花费的时间一样长。请让我知道问题是什么。我也已在Windows上安装了内存缓存,但问题在Windows上也同样。

/**
 * Created by PhpStorm.
 * User: Delll
 * Date: 14-Sep-18
 * Time: 2:44 AM
 */

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;

class User_controller extends Controller{


    public function index(){
        $memcache = 'Using memcache';

        $users = Cache::remember("key",6999,function(){
            return DB::table('users')->get();
        });
//        Cache::pull('key');

        $val= Cache::has('key');
        if($val !=null){
            echo "Found ".$val;
        }else{
            echo "Not Found ".$val;
        }

        return view('pages.home',compact('users','memcache'));
    }

    public function remove(){
        $value = Cache::pull('key');
        return $value;
    }


}

从内存缓存中检索结果的速度应比从数据库中检索速度更快。

1 个答案:

答案 0 :(得分:0)

memcached的性能问题很难调试(至少对我而言)。我建议使用用户空间跟踪工具来深入了解到底是什么引起了延迟(读,写或其他?)

这是获取一些信息的示例:

 strace -p {php_process_id} -k -r -t -i -T -q  -v -y -yy -C -d -o strace_output.log

代替php进程ID,将根php-fpm进程ID放到那里,然后看看您得到了什么。