Zdaję sobie sprawę z tego, że rozwiązanie mojego problemu może być banalne, ale sam siedzę nad tym ponad godzinę i mnie nosi.
Panowie, mam coś takiego:
<?php $memcache = new Memcache; $data = $memcache->get('10'); $data = 'coś tam coś tam'; $memcache->add('10', $data, false, 30); } ?>
I mi nie działa. Zapisuję raczej poprawnie, ale ten odczyt jakby nie teges. Sam już nie wiem. Proszę o pomoc.
Przy okazji dążę do tego, że chcę cachować rekordy z MySQL.
Przykładowo mam taką strukturę:
id, name, value, long
I przykładowy rekord wyglądałby tak:
id = 1
name = inter
value = docs
long = 3.25
Chcąc to wykorzystać w moim skrypcie (po wcześniejszym fetch_array z MySQL) wystarczyłoby to poniżej?
<?php $memcache = new Memcache; $data = $memcache->get($id); $memcache->add($id', $data, false, 30); } echo 'Nazwa: '.$data[0].'Wartość: '.$data[1].'Długość: '.$data[2].; ?>
Oczywiście będę wdzięczny za korektę w kodzie, bo już sam nie wiem, gdzie jest ten nieszczęsny błąd.
Pozdrawiam.
-----------------ROZWIĄZANE-----------------
Tak jak myślałem, problem jest błahy.
Z pomocą przyszedł przykład ze strony http://www.php.rk.edu.pl/w/p/php-i-memcached/
Wszystko działa idealnie w następującej postaci:
<?php $memcache = new Memcache; IF ($get_result = $memcache->get('key')) { $data = $get_result->int_attr; }else{ $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = $data; } ?>
Dane się powinny trzymać cały tydzień.