Rails caching med dalli pärla

Dalli är en högpresterande ren Ruby-klient för åtkomst av memcachade servrar. Det fungerar endast med memcached 1.4+, eftersom det använder det nyare binära protokollet.

Memcache
Memcached är ett snabbt in-memory protestreservationsramverk som kan få Rails att köra mycket snabbare med inte särskilt många ändringar.
Memcached är ett nyckel-värdelager i minnet för små bitar av diskretionär information (strängar, objekt) från konsekvenser av databasanrop, API-anrop eller sidrendering.

Kör kommandot nedan för att installera memcached
På Ubuntu

sudo apt-get install memcached

På Mac

brew install memcached

Se webbadressen nedan för att veta mer om att installera memcahed
https://github.com/petergoldstein/dalli#installation-and-usage

Installera dalli gem

pärla 'dalli'

Lägg till pärlan ovan i din gemfil och kör buntinstallation.

Konfiguration
Här måste vi konfigurera vår rails-app för att tjäna cachingmekanism. Lägg till nedanstående rad till production.rb(config/environments/production.rb)

config.cache_store = :dalli_store

Dalli::Client accepterar följande alternativ. Alla tider är i sekunder.
går ut om: Global standard för nyckel-TTL. Standard är 0, vilket betyder att inget utgångsdatum.
namnutrymme: Som standard är den noll. Det är förankrat till varje nyckel om du anger namnutrymme.
failover: Standard är sant. Boolean, om sant, kommer Dalli att failover till en annan fungerande server om huvudservern för en nyckel är nere.
trådsäker: Boolean. Om det är sant, säkerställer Dalli att endast en tråd använder ett uttag vid en angiven tid. Standard är sant.
serializer: Serializern som ska användas för objekt som lagras (ex. JSON). Standard är marskalk.
komprimera: Boolean, om sant kommer Dalli att gzip-komprimera värden större än 1K. Standard är falskt.
compression_min_size: Minsta värde bytestorlek för att försöka komprimera. Standard är 1K.
compression_max_size: Maximal värde bytestorlek för att försöka komprimera. Standard är obegränsat.
Vänligen kontrollera fler konfigurationer på
https://github.com/petergoldstein/dalli#configuration
Efter detta måste vi berätta för ActionController att utföra cachning. Lägg till raden nedan i samma fil och starta om Rails-servern om du redan kör den.

config.action_controller.perform_caching = sant


Lägg till koden nedan i din indexmetod

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



Här, Rails.catche.fetch läser data från "posts"-nyckeln. Om den angivna nyckeln har några data kommer den att returnera data annars kommer den att skriva till den nyckeln och den kommer att vara tillgänglig för på varandra följande samtal inom utgångstiden.

Rails tillhandahåller hjälpare som Rails.cache.read för att läsa cachen, Rails.cache.write för att skriva i cachen och Rails.cache.fetch för att returnera resultaten om de finns i cachen eller skriv i cachen för att returnera resultat.

Du kan läsa mer om Rails cache på
https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html

Rails.cache.clear() – Spolar alla nycklar från memcached.
Rails.cache.delete('posts') – Om du vill tömma någon specifik nyckel från memcachad server.

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish