Využívání tágů v memcached

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
ZETCHA
Člen | 59
+
0
-

Zdravím.

Nevíte o nějakém řešení, které by umožňovalo používat v memcached tagy popřípadě umožňovalo mazat cache podle například prefixu?

Našel jsem http://code.google.com/…mcached-tag/ ,ale aktivita u tohoto projektu je nulová.
Máte někdo zkušenosti?

Díky za případné info.

wdolek
Člen | 331
+
0
-

nejsem si zcela jisty, jestli jde neco takoveho u jednoducheho key-value uloziste udelat. reseni me napadaji jen dve, a obe dost prapodivne:

  1. mit hodnoty pod klici a k nim jeste dalsi katalog podle tagu, dostat se tedy k zaznamu pres tag by znamenalo nejdrive ziskat prvni seznam a pomoci nej dojit k cili
  2. iterovat vsemi ulozenymi hodnotami (flush) a zjistovat nejakou jejich vlastnost

prvni variantu bych pouzil v pripade velkeho mnozstvi hodnot a mensiho poctu tagu, druhou pri malem mnozstvi hodnot.

tak nebo tak, neni mi znama zadna implementace tohoto „problemu“… (cili sem moc neodpovedel :( )

Filip Procházka
Moderator | 4668
+
0
-

Co takto?

'___tags' => array('tag1', 'tag2'), # seznam tagu
'___tags_tag1' => array('key1', 'key2'), # klíče, ktere patri tagu
'___tags_tag2' => array('key3', 'key4'), # klíče, ktere patri tagu

'key1' => $data,
'key2' => $data,
'key3' => $data,
'key4' => $data,

data bych pak získal jako

$tags = $memcached->get('__tags');

$data = array_map(function ($key) use ($memcached) {
	return $memcached->get($key);
}, $memcached->get('__tags_' . $jmenoTagu));

Asi by to chtělo ale ještě nějaké optimistické zamykání a trošku poladit, tohle je jen hrubý nástřel.

Acci
Člen | 83
+
0
-

Na tohle je v Nette určený optimalizovaný FileJournal. Sice se tagy neukládají do memcached serveru, ale do souboru, což ale bude vadit jen pokud k serveru přistupuješ z více míst.

Editoval Acci (18. 4. 2011 23:52)

Filip Procházka
Moderator | 4668
+
0
-

Ten fileJournal je hodně dobrý, ale já jsem ho třeba ani nezkoušel použít s memcached, protože mi příjde, že není zrovna ideální, abych si do filesystému zapisoval metadata o něčem, co mám v RAM a mnohem rychlejší na přečtení, jestli to nebude brzdit?

Honza Kuchař
Člen | 1662
+
0
-

Pořád si myslím, že to bude rychlejší, než procházet všechny hodnoty v memcache.

RadekDvorak
Člen | 11
+
0
-

Zkusil jsem vyrobit hack na fileJournal.

https://gist.github.com/1092290

paranoiq
Člen | 392
+
0
-

HosipLan napsal(a):

Ten fileJournal je hodně dobrý, ale já jsem ho třeba ani nezkoušel použít s memcached, protože mi příjde, že není zrovna ideální, abych si do filesystému zapisoval metadata o něčem, co mám v RAM a mnohem rychlejší na přečtení, jestli to nebude brzdit?

protože se k němu přistupuje často, bude file journal kešovaný v paměti systémem. (pokud není paměti nedostatek)