Autor Zpráva
Marti_n
Profil
Dobrý deň,

Dneska som sa venoval čítaniu o Memcache. Pochopil som základný princíp a zaujal ma hlavne ukladaním výsledkom z databázy na rýchlejšie médium, ale neviem či je vhodný na môj projekt.

V mojom projekte by som mohol zhrnúť SELECTY z databázy do troch skupín:
1) Hlavný SELECT - deje sa iba pri prihlásený užívateľa a výsledky sa uložia do SESSIONS, ďalej sa tieto hodnoty menia pri akciách užívateľa v SESSIONS a v databáze pomocou UPDATE, DELETE.
2) Kontrolný SELECT - spočítava iba výsledky cez count, teda kontroluje či v danom čase môže užívateľ urobiť danú akciu. Toto je potrebné kontrolovať každú akciu, teda je nemožné uložiť výsledok do Memcache.
3) Klasický SELECT - vyťahujú sa dáta ako napríklad id, meno užívateľa čo sú nemenné dáta, alebo iba zriedkavo menené dáta.

Teda uloženiu do Memcache mi pripadá iba tretí prípad. Teda ak som to správne pochopil, ukladal by som tam len často nemenné dáta, pretože zbytočné tam uložím dáta, ktoré o 1 sekundu môžu byť iné.

Memcache by mi prišli užitočné pri dotazoch typu, príklad nejaké články alebo niečo podobné, ktoré sa často nemenia. Pochopil som to správne? Príklad užívateľ klikne na článok, prebehne SELECT článku z databázy, zistí sa pred tým či neexistuje výsledok v Memcache, keď nie prebehne SQL dotaz a uloží sa do Memcache. Ďalších 100 užívateľov si za 10 minút zobrazí daný článok, ale už ho nebudú tahať z DB ale z Memcache?
Keď áno, tak je to šikovná vecička :)
Alphard
Profil
Problémy s výkonem se obvykle neřeší v hypotetické úrovni (pokud není předem jasné, že se objeví), ale až když si to situace vyžádá. Takže bych postup popsal takto:

1. Máte nyní problémy s výkonem? Pokud ano, analyzujte je. Někdy se cache může hodit na úrovni dotazu, někdy na úrovni většího celku. A někde je možná úplně jiná změna.
2. Nemáte nyní problémy, ale očekáváte je (aplikace zvládá na hranici možnosti a plánuje se velká kampaň)? Zkuste na základě analýzy aktuálního stavu a simulací odhadnout, kde se objeví, potom viz výše.
3. Nemáte problémy a neočekáváte je v nejbližší době? Nic neměnte. Využijte čas k dalšímu studiu a testovacímu nasazení kamkoliv.
Virtus
Profil
Zdravím,

určitě byh se držel toho co zde napsal Alphard a jenom bych dodal informaci ke cachování pokud přece jenom bude potřeba cache, existuje, dle mého názoru, lepší řešení než Memcache (záleží teda hodně natom co opravdu bude pořeba cachovat) a tím je Redis http://redis.io/ a zde stručné srovnání http://stackoverflow.com/questions/10558465/memcache-vs-redis

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0