Laravel 8: Memcache and Memcached

C++ JAVA
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Laravel 8: Memcache and Memcached

Post by dakata__92 »

Открих, че имам проблеми с кеширането под драйвър memcached. Изобщо не се запазват нещата и на практика нямам кеширане, но и никаква грешка не ми излиза никъде. Временно смених кеширането да е във файлове и си работи нормално, но се чудех защо нещата под memcached не вървят. Имам инсталирани на сървъра Memcache и Memcached.

config/cache.php

Code: Select all

        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],
Забелязах, че на сървъра за memcache е настроен default_port - 11211.
Тъй като Laravel използва другата библиотека memcached се чудех дали проблема е в настройките на работната рамка? Можете ли да ми дадете насоки, как да реша проблема?

Memcache:
Image
Memcached:
Image
by Revelation » Mon Apr 12, 2021 4:41 pm
dakata__92 wrote: Mon Apr 12, 2021 1:09 pm systemctl restart memcached

И работата заспа...

https://github.com/php-memcached-dev/ph ... issues/368
Това ми беше следващото предложение, но кой да натисне Submit. А защо след толкова време реши да го рестартираш?

Аз по принцип никога не тествам директно на сървъра, а на мойта си машина. Така мога да дебъгна като хората. Ако при мен работи, а не на сървъра, първо ще се убедя, че съм на един и същи бранч с този, който е деплойнат на live сървъра (случвало се е да не обърна внимание на кой бранч съм). Ако всичко е правилно, проверявам логове, ако няма логове за проверяване, рестарт на външния сървиз при положение, че знам, че само с него нещата се бъгват.

Въпроса е, че не мога да стигна до същото заключение, когато е през форума. Нещата са малко "развален телефон".
Go to full post
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Подадох в env и MEMCACHED_PERSISTENT_ID=test_slug заедно с CACHE_DRIVER=memcached, но отново не сработи този драйвър. За жалост работя с по-бавният вариант под файлове, но това ме дразни и не мога да разбера защо не работи.

Ако тествам кода по този начин в някой модел, то няма проблем и сработва, а през ларавел не желае....

Code: Select all

        $m = new Memcached();
        $m->addServer('127.0.0.1', 11211);
        if ($m->get('key') != 'test') {
            $m->set('key', 'test');
        }
        dd($m->get('key'));
Ползвам cache()->remember();
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Никой ли няма идея защо memcached не работи?
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Продължавам да имам проблем с мемкеша.
User avatar
Revelation
Web-tourist
Web-tourist
Reactions: 1
Posts: 958
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 68

Re: Laravel 8: Memcache and Memcached

Post by Revelation »

Дебъгера какво казва?
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Revelation wrote: Mon Nov 30, 2020 8:56 am Дебъгера какво казва?
Нямам никакви грешки. Просто ми е адски странно защо не сработват нещата.
User avatar
Revelation
Web-tourist
Web-tourist
Reactions: 1
Posts: 958
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 68

Re: Laravel 8: Memcache and Memcached

Post by Revelation »

Не за грешки. Проследи ли с дебъгера какво се случва. Също пробва ли с фасадата

Code: Select all

Cache::remember()
вместо с хелпъра.

Други cache драйвъри имаш ли в config-а.
Пробвай да зададеш конкретен store

Code: Select all

Cache::store('memcached')->remember()
Най-лесно е да тръгнеш стъпка по стъпка с дебъгера и да видиш дали имаш правилните стойности до извикването на Memcached.
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Revelation wrote: Mon Nov 30, 2020 9:49 am Не за грешки. Проследи ли с дебъгера какво се случва. Също пробва ли с фасадата

Code: Select all

Cache::remember()
вместо с хелпъра.

Други cache драйвъри имаш ли в config-а.
Пробвай да зададеш конкретен store

Code: Select all

Cache::store('memcached')->remember()
Най-лесно е да тръгнеш стъпка по стъпка с дебъгера и да видиш дали имаш правилните стойности до извикването на Memcached.
Не съм пробвал с фасадата, но ще тествам днес. Ще подам и store освен от конфигурацията, но не мисля, че това ще реши казуса. Конфигурацията е наред и нямам нищо друго в нея.
User avatar
Revelation
Web-tourist
Web-tourist
Reactions: 1
Posts: 958
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 68

Re: Laravel 8: Memcache and Memcached

Post by Revelation »

Явно не си фен на xdebug.

Ларавел регистрира описаните в конфигурацията сървъри, само ако няма нищо в pool-а. Ако Memcached има нещо регистрирано, то ще използва него, но това не го прави правилния избор. Можеш да видиш с твоя тест като извикаш getServerList() метода на Memcached. Ако няма нищо, тогава Ларавел си регистрира сървърите описани в твоя конфиг файл и означава, че проблема идва от другаде.

Имаш ли MEMCACHED_USERNAME и MEMCACHED_PASSWORD сетнати? Според твоя тест не ти трябват. Ларавел за да използва sasl масива в конфигурацията трябва да съдържа 2 стойности. Не е описано как Memcached приема null-еви стойности, но бих ти предложил да ги закоментираш или махнеш от масива в конфигурационния файл, така Ларавел няма да се опитва да сетва credentials, понеже дори и да са null стойности count([null, null]) също връща 2.

Другото, което е - в твоя тест не използваш persistent id параметъра, но подаваш такъв на Ларавел. За всеки persistent id се създава различна инстанция и съответно getServerList() ще върне различни резултати, което ще рече, че теста ти не е много коректен.

Още нещо, което можеш да провериш е дали стойностите от env файла реално се сетват.
User avatar
dakata__92
Web-tourist
Web-tourist
Reactions: 0
Posts: 3390
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 »

Днес има доста работа по системата. Ако не успея то утре ще изтествам твоите предложения и ще върна отговор. Благодаря за предложенията :!:
Post Reply