【问题标题】:Why is my Laravel Memcache taking too long to retrieve data?为什么我的 Laravel Memcache 检索数据需要很长时间?
【发布时间】:2019-05-27 17:53:43
【问题描述】:

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

我成功安装了 memcache 并在其中保存了数据,但问题是当我从 memcache 中检索数据时,它与从数据库中检索所需的时间一样长。请让我知道是什么问题。我也在 windows 上安装了 memcache,但 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;
    }


}

memcache 的结果应该比数据库更快地检索。

【问题讨论】:

    标签: php laravel memcached


    【解决方案1】:

    memcached 的性能问题很难调试(至少对我而言)。我建议使用用户空间 strace 工具来深入了解究竟是什么导致了延迟(读取?写入?其他?)

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

     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 看看你得到什么。

    【讨论】:

    • 我应该通过cmd插入这个吗?
    • 是的,在 linux 机器上。如果你不熟悉 linux 系统调用,理解输出可能有点问题
    猜你喜欢
    • 1970-01-01
    • 2022-11-11
    • 2012-01-14
    • 2011-04-22
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    相关资源
    最近更新 更多