Dalli est un client Ruby de haute performance pour accéder aux serveurs memcached. Il ne fonctionne qu'avec memcached 1.4+, car il utilise le protocole binaire le plus récent.
Memcache
Memcached est un cadre de réservation de protestation en mémoire rapide qui peut faire fonctionner Rails beaucoup plus rapidement avec peu de changements.
Memcached est un magasin de valeurs clés en mémoire pour de petits morceaux d'informations discrétionnaires (chaînes de caractères, objets) provenant des conséquences des appels à la base de données, des appels à l'API ou du rendu des pages.
Exécutez la commande ci-dessous pour installer memcached
Sur Ubuntu
sudo apt-get install memcached
Sur Mac
brew install memcached
Veuillez consulter l'URL ci-dessous pour en savoir plus sur l'installation de memcahed
https://github.com/petergoldstein/dalli#installation-and-usage
Installer la gemme dalli
pierre précieuse "dalli
Ajoutez la gem ci-dessus à votre fichier de gemmes et exécutez bundle install.
Configuration
Ici, nous devons configurer notre application rails pour qu'elle serve des mécanismes de mise en cache. Ajoutez la ligne suivante au fichier production.rb(config/environments/production.rb)
config.cache_store = :dalli_store
Dalli::Client accepte les options suivantes. Tous les temps sont exprimés en secondes.
expires_in : Valeur globale par défaut du TTL de la clé. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas d'expiration.
l'espace de noms : Par défaut, il est nul. Il est ajouté à chaque clé si vous spécifiez un espace de noms.
basculement : La valeur par défaut est true. Booléen, si true, Dalli basculera sur un autre serveur fonctionnel si le serveur principal d'une clé est hors service.
threadsafe : Booléen. Si true, Dalli s'assure qu'un seul thread utilise une socket à un moment donné. La valeur par défaut est true.
sérialiseur : Le sérialiseur à utiliser pour les objets stockés (ex. JSON). La valeur par défaut est Marshal.
compress : Booléen, si vrai, Dalli compressera par gzip les valeurs supérieures à 1K. La valeur par défaut est false.
compression_min_size : Valeur minimale de la taille de l'octet pour laquelle la compression doit être tentée. La valeur par défaut est 1K.
compression_max_size : Valeur maximale de la taille de l'octet pour laquelle la compression doit être tentée. La valeur par défaut est illimitée.
Vous pouvez consulter d'autres configurations à l'adresse suivante
https://github.com/petergoldstein/dalli#configuration
Après cela, nous devons dire à ActionController d'effectuer la mise en cache. Ajoutez la ligne ci-dessous au même fichier et redémarrez le serveur Rails si vous l'utilisez déjà.
config.action_controller.perform_caching = true
Veuillez ajouter le code ci-dessous à votre méthode d'indexation
@posts = Rails.cache.fetch('posts', expires_in : 5.minutes){
Post.all
}
Ici, Rails.catche.fetch lit les données de la clé "posts". Si la clé spécifiée contient des données, elle les renvoie, sinon elle les écrit dans cette clé, qui sera disponible pour des appels successifs pendant le délai d'expiration.
Rails fournit des aides telles que Rails.cache.read pour lire le cache, Rails.cache.write pour écrire dans le cache et Rails.cache.fetch pour renvoyer les résultats s'ils sont présents dans le cache ou sinon, écrire dans le cache pour renvoyer les résultats.
Vous pouvez en savoir plus sur le cache Rails à l'adresse suivante
https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html
Rails.cache.clear() - Vider toutes les clés de memcached.
Rails.cache.delete('posts') - Si vous souhaitez effacer une clé spécifique du serveur memcached.