2010-09-28 16 views
7

Heroku supporta nativamente memcache come addon. il mio problema è che, essendo ancora un principiante di rails, non ho idea di come usare memcache per velocizzare la mia richiesta più dispendiosa in termini di tempo (so che sono guardando una nuova analisi). dovremmo usare una gemma come "cache-money" sopra a memcache? qualcuno usa più act_as_cached?come usare memcache per accelerare i binari/heroku

So che questa è una domanda piuttosto banale. Eppure, dopo aver cercato sul web per ore, non sono riuscito a trovare un tutorial decente. Qualsiasi aiuto/collegamento apprezzato!

+0

Caching è una argomento molto ampio e puoi fare molti tipi diversi di esso. Memcached non è niente di speciale; è solo un supporto di memorizzazione per le cose che vuoi memorizzare nella cache (dato che mysql potrebbe essere la tua memoria per gli oggetti che vuoi essere persistente). Un altro tipo di memorizzazione nella cache potrebbe essere più adatto per la tua pagina specifica. In ogni caso, dovrai fornirci maggiori dettagli sulla tua lenta richiesta per ottenere risposte decenti. Che tipo di pagina è? Pubblico o diverso per ogni utente? La maggior parte del tempo è trascorso nell'interrogazione del database o nel rendering delle viste? – tfe

+1

+1 per questa domanda. Sto anche cercando un tutorial decente + tutorial su memcache. –

risposta

4

È possibile guardare Caching in Rails 2.1 e poi leggere il memcached documentation (suppongo avete già letto) in Heroku.

Inoltre, Touch and Cache è una tecnica abbastanza interessante per evitare di scrivere Sweepers per eliminare il contenuto memorizzato nella cache quando è necessario aggiornare i dati memorizzati nella cache. L'utilizzo di touch farà scadere automaticamente i dati memorizzati nella cache senza quasi dover scrivere un nuovo codice.

Si prega di notare che oggi, l'integrazione memcached Heroku presuppone che si sta utilizzando Rails> = 2.3.3

L'idea principale è che si aggiunge il risultato (s) del vostro tempo metodo per Rails.cache consumare (che è l'interfaccia attraverso cui accedi al tuo meccanismo di caching). Quando si recuperano i risultati, il meccanismo di memorizzazione nella cache cerca se può trovarlo o se non è scaduto.

Se lo trova, lo restituisce molto velocemente perché lo prende dalla cache.

Se non lo trova o è scaduto (lo si imposta quando si chiama fetch), esegue il metodo lento effettivo per aggiungerlo o aggiornarlo nella cache.

Infine, è molto utile leggere la documentazione di Rails a prescindere dal fatto che si stia utilizzando memcached o la cache integrata di Rails: Caching with Rails: An overview. Tra le altre cose si parla di:

  • Pagina caching
  • azione caching
  • Frammento caching
  • Sweepers
  • SQL caching
  • e molto altro ancora ...
0

È possibile memorizzare nella cache sul memcache l'action_cache oppure è possibile accedere a memcache con Rails.cache