Rails-Zwischenspeicherung mit dalli gem

Dalli ist ein hochleistungsfähiger reiner Ruby-Client für den Zugriff auf memcached-Server. Er funktioniert nur mit memcached 1.4+, da er das neuere Binärprotokoll verwendet.

Memcache
Memcached ist ein schnelles In-Memory-Protest-Reservierungs-Framework, das Rails mit nicht sehr vielen Änderungen viel schneller laufen lassen kann.
Memcached ist ein speicherinterner Key-Value-Speicher für kleine, beliebige Informationen (Strings, Objekte), die sich aus Datenbankaufrufen, API-Aufrufen oder dem Rendern von Seiten ergeben.

Führen Sie den folgenden Befehl aus, um memcached zu installieren
Unter Ubuntu

sudo apt-get install memcached

Auf dem Mac

brew install memcached

Unter der folgenden URL erfahren Sie mehr über die Installation von memcahed
https://github.com/petergoldstein/dalli#installation-and-usage

dalli gem installieren

Edelstein 'dalli'

Fügen Sie den oben genannten Edelstein zu Ihrem Gemfile hinzu und führen Sie bundle install aus.

Aufbau
Hier müssen wir unsere Rails-App so konfigurieren, dass sie Caching-Mechanisam bedient. Fügen Sie die folgende Zeile zur production.rb hinzu (config/environments/production.rb)

config.cache_store = :dalli_store

Dalli::Client akzeptiert die folgenden Optionen. Alle Zeiten sind in Sekunden angegeben.
abläuft_in: Globaler Standard für die Schlüssel-TTL. Der Standardwert ist 0, was bedeutet, dass er nicht abläuft.
Namensraum: Standardmäßig ist er gleich Null. Er wird jedem Schlüssel vorangestellt, wenn Sie Namespace angeben.
Ausfallsicherung: Standard ist true. Boolean, wenn true, wird Dalli auf einen anderen funktionierenden Server ausweichen, wenn der Hauptserver für einen Schlüssel ausgefallen ist.
thread-safe: Boolescher Wert. Wenn true, stellt Dalli sicher, dass nur ein Thread einen Socket zu einem bestimmten Zeitpunkt benutzt. Standard ist true.
Serialisierer: Der Serialisierer, der für zu speichernde Objekte (z. B. JSON) verwendet werden soll. Standard ist Marshal.
komprimieren: Boolean, wenn true, wird Dalli Werte größer als 1K gzip-komprimieren. Standard ist false.
komprimierung_min_größe: Mindestwert der Bytegröße, für den eine Komprimierung versucht werden soll. Standard ist 1K.
komprimierung_max_größe: Maximaler Wert der Bytegröße, für den eine Komprimierung versucht werden soll. Standard ist unbegrenzt.
Weitere Konfigurationen finden Sie unter
https://github.com/petergoldstein/dalli#configuration
Danach müssen wir dem ActionController sagen, dass er das Caching durchführen soll. Fügen Sie die folgende Zeile in dieselbe Datei ein und starten Sie den Rails-Server neu, wenn Sie ihn bereits ausführen.

config.action_controller.perform_caching = true


Bitte fügen Sie den folgenden Code in Ihre Indexmethode ein

@posts = Rails.cache.fetch('posts', expires_in: 5.minutes){
	Post.all
}



Hier, Rails.catche.fetch liest die Daten aus dem Schlüssel 'posts'. Wenn der angegebene Schlüssel Daten enthält, werden diese zurückgegeben, andernfalls werden sie in diesen Schlüssel geschrieben und stehen für nachfolgende Aufrufe innerhalb der Ablaufzeit zur Verfügung.

Rails bietet Helfer wie Rails.cache.read, um den Cache zu lesen, Rails.cache.write, um in den Cache zu schreiben und Rails.cache.fetch, um die Ergebnisse zurückzugeben, wenn sie im Cache vorhanden sind, oder andernfalls in den Cache zu schreiben, um die Ergebnisse zurückzugeben.

Mehr über den Rails-Cache erfahren Sie unter
https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html

Rails.cache.clear() - Leeren aller Schlüssel aus dem Memcached.
Rails.cache.delete('posts') - Wenn Sie einen bestimmten Schlüssel vom Memcached-Server flushen möchten.

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman