Почему мой Laravel Memcache занимает слишком много времени для получения данных? - PullRequest
0 голосов
/ 27 мая 2019

Я делаю простое приложение larvel, чтобы показать использование memcached.Os я использую Ubuntu.Записи в базе данных - 50 КБ.

Я успешно установил memcache и сохранил в нем данные, но проблема в том, что когда я извлекаю данные из memcache, это занимает слишком много времени, как при извлечении из базы данных.Пожалуйста, дайте мне знать, в чем проблема.Я установил memcache и в 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;
    }


}

Результат из memcache должен быть получен быстрее, чем база данных.

1 Ответ

0 голосов
/ 27 мая 2019

Проблемы производительности с memcached сложно отладить (по крайней мере, для меня).Я бы предложил использовать инструмент strace пользовательского пространства, чтобы получить представление о том, что именно вызывает задержку (читай, писать? Что-то еще?)

Вот пример получения некоторой информации:

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

вместо идентификатора процесса php поместите туда корневой идентификатор процесса php-fpm и посмотрите, что вы получите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...