Dalli es un cliente Ruby puro de alto rendimiento para acceder a servidores Memcached. Funciona solo con memcached 1.4+, ya que utiliza el protocolo binario más nuevo.
Memcache
Memcached es un marco de reserva de protestas en memoria rápido que puede hacer que Rails se ejecute mucho más rápido sin muchos cambios.
Memcached es un almacén clave-valor en memoria para pequeños fragmentos de información discrecional (cadenas, objetos) resultantes de llamadas a bases de datos, llamadas a API o representación de páginas.
Ejecute el siguiente comando para instalar memcached
En Ubuntu
sudo apt-get instalar memcached
En Mac
instalar cerveza en memcached
Consulte la siguiente URL para obtener más información sobre cómo instalar Memcahed.
https://github.com/petergoldstein/dalli#installation-and-usage
Instalar gema dalli
joya 'dalli'
Agregue la gema anterior a su archivo de gemas y ejecute la instalación del paquete.
Configuración
Aquí, tenemos que configurar nuestra aplicación Rails para que sirva el mecanismo de almacenamiento en caché. Agregue la siguiente línea a production.rb(config/environments/production.rb)
config.cache_store = :dalli_store
Dalli::Client acepta las siguientes opciones. Todos los tiempos están en segundos.
expira en: Valor predeterminado global para la clave TTL. El valor predeterminado es 0, lo que significa que no tiene vencimiento.
espacio de nombres: Por defecto, es nulo. Se antepone a cada clave si especifica el espacio de nombres.
conmutación por error: El valor predeterminado es verdadero. Booleano, si es verdadero, Dalli conmutará por error a otro servidor que funcione si el servidor principal de una clave no funciona.
a salvo de amenazas: Booleano. Si es verdadero, Dalli garantiza que solo un subproceso utilice un socket en un momento dado específico. El valor predeterminado es verdadero.
serializador: El serializador que se utilizará para los objetos que se almacenan (por ejemplo, JSON). El valor predeterminado es Mariscal.
comprimir: booleano, si es verdadero, Dalli comprimirá con gzip valores mayores que 1K. El valor predeterminado es falso.
compresión_min_size: Tamaño mínimo de bytes del valor para el que intentar la compresión. El valor predeterminado es 1K.
compresión_max_size: Tamaño máximo de bytes del valor para el que intentar la compresión. El valor predeterminado es ilimitado.
Por favor verifique más configuraciones en
https://github.com/petergoldstein/dalli#configuration
Después de esto, tenemos que decirle a ActionController que realice el almacenamiento en caché. Agregue la línea siguiente al mismo archivo y reinicie el servidor Rails si ya lo está ejecutando.
config.action_controller.perform_caching = verdadero
Agregue el siguiente código a su método de índice
@posts = Rails.cache.fetch('publicaciones', expires_in: 5.minutos){ Post.all }
Aquí, Rieles.catch.fetch lee los datos de la clave 'publicaciones'. Si la clave especificada tiene algún dato, devolverá datos; de lo contrario, escribirá en esa clave y estará disponible para llamadas sucesivas dentro del tiempo de vencimiento.
Rails proporciona ayudas como Rails.cache.read para leer el caché, Rails.cache.write para escribir en el caché y Rails.cache.fetch para devolver los resultados si están presentes en el caché o, de lo contrario, escribir en el caché para devolver el resultados.
Puede leer más sobre la caché de Rails en
https://api.rubyonrails.org/classes/ActiveSupport/Cache/Store.html
Rails.cache.clear() – Eliminar todas las claves de Memcached.
Rails.cache.delete('publicaciones') – Si desea eliminar alguna clave específica del servidor Memcached.