Laravel 8: Memcache and Memcached

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

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 » Mon Apr 12, 2021 9:25 am

Здравей датата и часът на сървъра и в ларавел са ми наред. Директно в реална среда тествам. Пробвах с now()->addSeconds() но интересното е че под 450 не запаметява в кеш. Тоест големите заявки за голямо време ги помни, но тези които са примерно за 1 минутка не. Пробвах всичко, системния администратор беше с мен, всичко изтества и той, даже шелче за търсене на ключ ми извади но това е. Файловете работят, memcached не пълноценно...

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3383
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 » Mon Apr 12, 2021 11:52 am

Открих нещо много интересно.

Реших да извикам инстанцията на мемкеша на php и да тествам и сравнявам с нея.

Code: Select all

 	dump($this->currentTime());
        $m = cache()->store('memcached')->getMemcached();
        $key = md5('test_123456');
        dd($m->add('admin_'.$key,'test',60))
Така всичко работи защото директно заобикалям ларавел store и казвам на php memcached класът да запази данните. С новата проверка по ключове от системния администратор всичко е ок. Кога се появява проблема?

Code: Select all

 	dump($this->currentTime());
        $m = cache()->store('memcached')->getMemcached();
        $key = md5('test_123456');
        dd($m->add('admin_'.$key,'test',1618228060))
Ларавел подава директно таймстампа към функцията за add на мемкеша и съответно, това не сработва!!!

Ако приемем, че сегашното време е 1618228000 и подам 60 секунди отгоре = 1618228060 не сработва.
Ако подам време 1618229000 тогава се запаметява ключът с 1000 секунди за теста разлика.

Та въпроса ми е защо?

Този тест вади e с 60 секунди и не запаметява на рефреша нищо.

Code: Select all

	dump(now());
        dump(exec('date'));
        dump($this->currentTime());
        dump($this->availableAt(60));
        $m = cache()->store('memcached')->getMemcached();
        $key = 'admin_1_'.md5('test_123456');
        dump($m->add($key,'test',$this->availableAt(60)));
        dd($m->get($key));
Image

Този тест е с 500 секунди

Code: Select all

dump(now());
        dump(exec('date'));
        dump($this->currentTime());
        dump($this->availableAt(500));
        $m = cache()->store('memcached')->getMemcached();
        $key = 'admin_1_'.md5('test_123456');
        dump($m->add($key,'test',$this->availableAt(500)));
        dd($m->get($key));
Image
Image

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3383
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 » Mon Apr 12, 2021 1:09 pm

systemctl restart memcached

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

https://github.com/php-memcached-dev/ph ... issues/368

User avatar
Revelation
Web-tourist
Web-tourist
Posts: 948
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 66

Re: Laravel 8: Memcache and Memcached

Post 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 сървъра (случвало се е да не обърна внимание на кой бранч съм). Ако всичко е правилно, проверявам логове, ако няма логове за проверяване, рестарт на външния сървиз при положение, че знам, че само с него нещата се бъгват.

Въпроса е, че не мога да стигна до същото заключение, когато е през форума. Нещата са малко "развален телефон".

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3383
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 128

Re: Laravel 8: Memcache and Memcached

Post by dakata__92 » Wed Apr 14, 2021 11:08 am

Revelation wrote:
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 сървъра (случвало се е да не обърна внимание на кой бранч съм). Ако всичко е правилно, проверявам логове, ако няма логове за проверяване, рестарт на външния сървиз при положение, че знам, че само с него нещата се бъгват.

Въпроса е, че не мога да стигна до същото заключение, когато е през форума. Нещата са малко "развален телефон".
Здравей. Много ти благодаря за помощта! Нива на достъп и приоритети предрекоха мъките на този проблем. На практика се наложи доста да се помъча, докато подкарам всичко да е наред.

Post Reply