2010-09-28 11 views
7

Heroku obsługuje memcache natywnie jako dodatek. mój problem polega na tym, że wciąż będąc nowicjuszem szyn, nie mam pojęcia, jak korzystać z memcache, aby przyspieszyć moją najbardziej czasochłonną prośbę (wiem, które są, szukając nowej analizy). czy powinniśmy używać klejnotów jak "pamięci podręcznej" na górze memcache? czy ktoś już używa act_as_cached?jak używać memcache do przyśpieszania szyn/heroku

Wiem, że to dość trywialne pytanie. Jednak po kilku godzinach wyszukiwania w Internecie nie mogłem znaleźć przyzwoitego samouczka. Każda pomoc/link doceniane!

+0

buforowanie jest bardzo szeroki temat i możesz zrobić wiele różnych rodzajów tego. Memcached nie jest niczym specjalnym; to tylko nośnik pamięci dla rzeczy, które chcesz cache (jak mysql może być twoją pamięcią dla obiektów, które chcesz być trwałe). Inny rodzaj buforowania może być bardziej odpowiedni dla Twojej strony. W każdym razie musisz podać nam więcej informacji o powolnym żądaniu, aby uzyskać przyzwoite odpowiedzi. Jaka strona to jest? Publiczny lub inny dla każdego użytkownika? Czy większość czasu spędzasz na odpytywaniu bazy danych lub renderowaniu widoków? – tfe

+1

+1 dla tego pytania. Szukam także przyzwoitego samouczka + przypomnienie memcache. –

Odpowiedz

4

Można oglądać Caching in Rails 2.1 a następnie odczytać memcached documentation (Przypuszczam, że już ją przeczytać) w Heroku.

Również, jest dość interesującą techniką, aby uniknąć pisania Zamiatarki w celu usunięcia buforowanej treści, gdy trzeba odświeżyć buforowane dane. Korzystanie z dotyku automatycznie wygaśnie dane z pamięci podręcznej, prawie bez konieczności pisania nowego kodu.

Należy pamiętać, że dzisiaj, integracja memcached Heroku zakłada używasz Rails> = 2.3.3

Główną ideą jest, aby dodać wynik (ów) swojego czasochłonne metody do Rails.cache (co jest interfejsem, przez który uzyskujesz dostęp do mechanizmu buforowania). Po pobraniu tych wyników mechanizm buforujący wyszukuje, czy może go znaleźć lub czy nie wygasł.

Jeśli ją znajdzie, zwraca ją bardzo szybko, ponieważ pobiera ją z pamięci podręcznej.

Jeśli nie można go znaleźć lub wygasł (ustawia się to podczas wywoływania pobrania), uruchamia on właściwą wolną metodę dodawania lub odświeżania w pamięci podręcznej.

Wreszcie, bardzo przydatne jest przeczytanie dokumentacji Railsów oprócz tego, czy korzystasz z memcached, czy z wbudowanego buforowania Railsów: Caching with Rails: An overview. Między innymi mówi o:

  • buforowanie Page
  • buforowanie Action
  • buforowanie Fragment
  • zamiatarki
  • buforowania SQL
  • więcej ...
0

Można buforować na memcache z action_cache czy można uzyskać dostęp do memcache z Rails.cache