Počet přečtení položky – jak přičítat v db bez připojení k db?
- Michalek
- Člen | 211
Dotaz 1:
Jak řešíte ukládání počtů zobrazení jednotlivé položky (pro
představu třeba banner)? Mám to všechno v databázi, ale snažím se
systém držet tak, aby se při zobrazování běžných stránek vůbec
nepřipojoval k db a všechno cachoval.
Já mám zatím nápad ukládat počty přečtení do cache a jednou za čas (24 hodin třeba) spustit cron, který ty čísla převede do databáze.
Dotaz 2:
Asi bych pro to případně používal MemCached – ale pro šablony a další
chci používat standardní FileStorage – dají se používat oba
najednou?
Editoval Michalek (21. 11. 2009 15:06)
- edke
- Člen | 198
Michalek wrote:
Dotaz 1:
Já mám zatím nápad ukládat počty přečtení do cache a jednou za čas (24 hodin třeba) spustit cron, který ty čísla převede do databáze.
tak prvy problem by som povedal, ze pomerne nepresne info o precitani, kedze budes ukladat kazdych 24 hodin. mozno ten cas by bolo dobre skratit, ved to nebude nejaka narocna operacia, povedzme kazdych 5 minut by bolo optimalne.
Dotaz 2:
co sa tyka Memcached, samozrejme ze spolu s FileStorage to skombinovat ide bez problemov, napriklad si vytvor v BasePresenter-i getter a ten pouzivaj kedy a kde v aplikacii budes potrebovat.
skor by som povedal, ze ukladat taketo data moze byt v Memcached nebezpecne, je to daemon, ktory uklada data v pamati, ak by z nejakeho dovodu padol, o tie informacie prides.
ukazka, ako Memcached v aplikacii pouzivame my:
config.ini:
memcache.host = localhost
memcache.port = 11211
memcache.prefix = application_name
BasePresenter.php:
class BasePresenter extends Presenter {
/**
* Instancia Memcached
* @var Cache
*/
protected $memcached;
public function getMemcached() {
if ($this->memcached) {
return $this->memcached;
}
else {
$config= Environment::getConfig('memcache');
$this->memcached= new Cache(new MemcachedStorage($config->host, $config->port, $config->prefix));
return $this->memcached;
}
}
- Michalek
- Člen | 211
- Má to sloužit jen jako info pro mě v adminu, nebudu to zobrazovat veřejně, takže aktuálnost zase není až takovou podmínkou.
- Díky moc, přesně tohle jsem si představoval. Že se to z memcached může ztratit v případě havárie, to je jasný, ale ty párminutová/hodinová data jsem schopen oželet.