J'ai ces deux variables étant définies dans le contrôleur. Comment met-je en cache ceux-ci afin qu'ils ne communiquent pas avec la base de données à chaque fois, seulement la première fois.
@tablenutrients = Nutrient.find(:all) @columnnutrients = @tablenutrients.collect {|x| x.nutrient}
3 Réponses :
Si votre base de données est configurée correctement, elle doit mettre en cache vos données par défaut. Si vous utilisez MySQL ou PostgreSQL, vous pouvez modifier l'Amoutn de RAM Utilisation du cache pour vous assurer que vous obtenez un taux de frappe élevé de cache. P>
Au-delà de la mise en cache de base de données simple, en utilisant quelque chose comme Dalli pour vous connecter à MEMCACHED devrait améliorer les performances assez simples. p>
rails doit profiter de Memcached pour mettre en cache toutes vos requêtes d'enregistrement actif dans Memcached fournie à la mise en place correctement. Le Guide des rails sur la mise en cache avec le Dumi Documentation devrait vous aider à démarrer basé sur la version des rails que vous utilisez. p>
Qu'est-ce que @djlumley a dit.
En général, vous pouvez également configurer et utiliser ActiveSupport :: Cache :: Stockez pour stocker explicitement vos propres variables personnalisées. Vous pouvez alors obtenir / définir des valeurs en cache, par exemple comme ceci: p>
rails a quelques options de mise en cache intégrées pour vous, dont deux fonctionnent probablement pour vous, en fonction de ce que vous faites avec le résultat de la requête:
Caching fragment fort> p > Si vous utilisiez cela comme une collection pour une boîte de sélection, un formulaire souvent utilisé, j'irais avec cette option. Cela vous permettrait de cacher non seulement le résultat de la base de données, mais également la section HTML réelle de la page. Ceci est fait simplement en lançant un Vous pouvez également écrire une méthode pour parler directement au magasin de cache intégré, en supprimant une méthode dans votre application dans les deux cas dans un environnement de production " Regez-vous à configurer soit MEMCACHED OU REDIS pour agir en tant que couche de cache (ils sont assis derrière des rails. Je voudrais vérifier Rails Guides pour un regard plus profond. p> p> <% = cache do%> code> autour de la section, comme: p>