Redis Object Cache per a WordPress: guia complerta

Redis Object Cache per a WordPress

Darrera actualització:

WordPress Redis Object Cache pot augmentar el rendiment del vostre lloc web de WordPress, però no tots els llocs web lents se’n poden beneficiar.

Aprèn quan Redis és bo per a WordPress i quan no, com funciona i com instal·lar-lo als teus webs WordPress.

Llegeix més: Redis Object Cache per a WordPress: guia complerta

Table of Contents

Redis és bo per a WordPress?

Abans de prendre una decisió entenem que significa utilitzar Redis per a la memòria cau d’objectes.

Què és la memòria cau d’objectes de Redis?

Redis és un magatzem de valor clau de codi obert que pot funcionar com a magatzem en memòria i com a memòria cau. WordPress utilitza aquesta memòria cau d’objectes per estalviar temps emmagatzemant a la memòria els resultats de la consulta a la base de dades.

La caché d’objectes no és el mateix que la memòria cau HTML. Els complements de WordPress com WP-Super-Cache, WP-Rocket, etc. són complements de memòria cau HTML, mentre que Object Cache emmagatzema el contingut de la base de dades.

Mentre que els complements de Page Cache funcionen emmagatzemant en memòria cau la pàgina HTML per estalviar temps en ometre el procés de PHP, Object Cache funciona emmagatzemant dades en memòria cau per ometre les consultes a la base de dades.

Com funciona Object Cache amb WordPress?

L’emmagatzematge en memòria cau d’objectes emmagatzema els resultats de les consultes a la base de dades que s’han sol·licitat. Posteriorment, els serveix més ràpid la propera vegada que un usuari els sol·liciti. D’aquesta manera, la vostra base de dades no ha de ser consultada novament.

WordPress també té Object Cache incorporat amb la classe Core WP_Object_Cache. El problema és que aquest emmagatzematge en memòria cau d’objectes al WordPress no és persistent per defecte.

Això significa que els objectes emmagatzemats a la memòria cau només s’emmagatzemen mentre dura el procés de generació de pàgines. Això és força ineficient a la pràctica a no ser que instal·li un mecanisme d’emmagatzematge en memòria cau persistent com Redis Object Cache.

Necessito Redis a WordPress?

Si una de les situacions següents és el teu cas, ets candidat per treure bon partit d’Object Redis Cache:

  • No pots emmagatzemar a la memòria cau el contingut del teu lloc de WordPress perquè canvia segons l’usuari. En aquests casos, sol ser poc útil fer servir els plugin de memòria cau HTML.
  • El temps de construcció de les pàgines és lent a causa d’un nombre elevat de consultes contra la base de dades. Amb l’emmagatzematge en memòria cau d’objectes, la base de dades es pot consultar molt menys. A més, recuperar contingut de Redis és molt més ràpid que enviar consultes a la base de dades.
  • La Base de Dades és prou ràpida però es dóna una alta concurrència usuaris.

Redis accelera WordPress?

No sempre!

  1. No es pot fer servir un connector de memòria cau de pàgina estàtica HTML o no cobreix totes les teves pàgines. Això és comú quan el vostre lloc WordPress interactua o canvia segons l’usuari. Exemples: llocs web de comerç electrònic que usen WooCommerce, llocs de membres, llocs web de xarxes socials o fòrums que usen BBPress, BuddyPress, etc.
  2. El Temps de Generació de la Pàgina és alt (per exemple, més de 0,5 segons) o pot ser alt a causa de la concurrència d’usuaris.
  3. El temps dedicat a les consultes a la base de dades és alt en comparació del temps de generació de pàgines, o la quantitat de consultes és alta (per exemple, més de 200 consultes), per la qual cosa una eventual concurrència d’usuaris pot afectar el rendiment.

A la secció següent, us mostrarem com inspeccionar el vostre WordPress i analitzar el temps de generació de pàgina.

Com analitzar el temps de generació de la pàgina de WordPress

Per poder analitzar el temps de generació de pàgina a cada pàgina de la teva web WordPress i identificar les fonts dels problemes de rendiment, instal·la el complement gratuït Query Monitor de John Blackbourn.

Aquest complement, a més del temps de generació de la pàgina, mostra quantes consultes a la base de dades es van executar per generar la pàgina i quant de temps va prendre.

A l’exemple que es mostra a continuació, podem identificar les mètriques clau quan treballem sense Redis Object Cache:

  • Temps de generació de pàgina: 0.2926s
  • Consultes a base de dades: Total: 132
  • Caché d’objectes: complement no instal·lat
Query Monitor Temps de Generació, Consultes i  informaió d'Object Cache
Un tiempo de generación de página de 0,2962 s y 132 solicitudes de base de datos, sin Redis Object Cache.

Redis Object Cache ens ajudarà a reduir el temps de generació de pàgines?

En el nostre cas, tenim 132 consultes de base de dades, cosa que sembla molt, però el temps que necessita el nostre servidor per resoldre aquestes consultes és molt baix: 0.0193 segons. En aquest cas, Redis Cache només ens podria ajudar a reduir aquests 0.0193 segons. No val la pena si no hi ha alta concurrència.

Si el temps de consultes a la base de dades és baix, Redis Object Cache només ens pot ajudar en casos d’alta concurrència.

Verificar si Redis Object Cache estalvia temps en emmagatzemar en memòria cau les meves sol·licituds de base de dades

Diguem que tenim alta concurrència i volem atendre consultes des de Redis, evitant colls d’ampolla a la nostra Base de dades:

Continuant amb el nostre cas, verifiquem el Temps de generació de pàgina quan s’executa Redis Object Cache.

Temps de generació de la pàgina, consultes a la base de dades i resultats del rendiment de la memòria cau d'objectes Redis
Un tiempo de generación de página de 0,2736 s y 31 solicitudes de base de datos, con Redis Object Cache.

Els resultats amb Redis Object Cache que es mostren a dalt ens diuen:

  • Temps de generació de pàgina: 0.2736s
  • Consultes de base de dades: Total: 31
  • Catx d’objectes: 99,3 % d’encerts

Hem reduït el nostre temps de generació de pàgines a menys de 20 mil·lisegons. És un valor massa baix per tenir-ho en compte, però les consultes a la base de dades van disminuir de 132 a 31, i això és el que ens ajudarà en cas d’alta concurrència.

Conclusió:

En aquest cas, Redis Object Cache només ens ajuda sota la concurrència d’usuaris. L’impacte en el temps de generació de pàgines és baix, però Redis Object Cache funciona bé en reduir la càrrega de la base de dades.

Com implemento el caixet de Redis a WordPress

Per utilitzar Redis per a l’emmagatzematge en memòria cau d’objectes en llocs de WordPress, heu de començar instal·lant i configurant un servei de Redis. Després, heu d’instal·lar l’extensió PHP Redis, seguida del complement Redis Object Cache.

La ruta més fàcil per instal·lar Redis Object Cache per a WordPress

Si el vostre servidor està allotjat a Wetopi, instal·lar, habilitar i configurar Redis Object Cache és un procés simple.

1. Afegiu el complement Redis Object Cache Wetopi

Veu al vostre lloc de Wetopi i obriu la pestanya Complements que trobareu a la part inferior, a la secció “Opcions del lloc”:

Complements Wetopi amb memòria cau d'objectes Redis

Una vegada que feu clic a Redis Object Cache, una finestra flotant us mostrarà els detalls del complement del Redis Object Cache:

Activar la memòria cau d'objectes de Redis per a WordPres

NOTA: Els servidors Small s’escalen a Medium per adaptar-se al servei Redis.

Una vegada que habiliteu el complement Redis, els vostres servidors Wetopi s’iniciaran amb una imatge d’instància que executa el servei Redis i el motor PHP amb el mòdul Redis habilitat.

2. Instal·la i configura el plugin Redis Object Cache amb un sol clic

El segon i últim pas instal·larà i configurarà el plugin Redis Object Cache perquè el vostre WordPress pugui manejar l’emmagatzematge de Object Cache.

Amb Wetopi això és un sol clic. Trobareu aquesta opció al menú del vostre servidor de WordPress, dins la secció d’opcions avançades:

Instal·leu  iconfigureu la memòria cau d'objectes Redis amb un sol clic
Haga clic en WP Redis Setup para instalar, activar y configurar de manera óptima el complemento Redis Object Cache

No cal cap acció addicional.

Para no trencar la teva web en producció durant les proves…

Clona el teu server producció i crea un entorn “staging” !!!

Clonar un lloc de WordPress amb Wetopi es tan fàcil com un simple clic.

El procés d’instal·lació pas a pas de Redis Object Cache per a WordPress

Si estàs allotjat a Wetopi, no necessites fer els passos següents. Podeu saltar a la secció “Ús del connector de memòria cau d’objectes de Redis

1. Instal·lar i configurar el servei Redis

Si estàs executant una distribució d’Ubuntu, segueix aquesta ordre:

sud apt install redis

Configura Redis /etc/redis/redis.conf perquè s’executi el més ràpid possible habilitant la connexió del socket:

# Unix socket.
#
# Specify path for the Unix sketch that will be used to listen for
# incoming connections. There is no default, so Redis will not listen
# on a unix socket when not specified.
#
unixsocket /var/run/redis/redis.sock
unixsocketperm 777

Estableix també el límit de memòria, la política de memòria i configureu Redis perquè funcioni únicament a la memòria sense desar al disc (és caché, no necessitem persistència).

############################# MEMORY MANAGEMENT ### ##############################

# Set a memory usage limit to the specified amount of bytes.
# When the memory limit is reached Redis will try to remove keys
# according to the eviction policy selected (sigui maxmemory-policy).

maxmemory 128mb


# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
# is reached. You can select among five behaviors:
#
# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
# allkeys-lru -> Evict any key using approximated LRU.
# volatile-lfu -> Evict usant approximated LFU among the keys with an expire set.
# allkeys-lfu -> Evict any key using approximated LFU.
# volatile-random -> Removeu a random key among the ones with an expire set.
# allkeys-random -> Removeu a random key, any key.
# volatile-ttl -> Removeu el key with el nearest expire time (minor TTL)
# noeviction -> Don't evict anything, just return an error on write operations.
#
# LRU means Least Recently Used
# LFU means Least Frequently Used
#
maxmemory-policy allkeys-lru

...


################################ SNAPSHOTTING ################## ################
#
# Save the DB on disk:
#
# save <seconds> <changes>
#
# Will save the DB if both the given number of seconds and the given
# number of write operations against the DB succeït.
#
# In the example below the behaviour will be to save:
# after 900 sec (15 min) if at least 1 key changed
# after 300 sec (5 min) if at least 10 keys changed
# after 60 sec if at least 10000 keys changed
#
# Note: vostè pot disable saving completely per comentaris sobre "save" línies.
#
# It is also possible to remove all the previously configured save
# points by adding a save directive with a single empty string argument
# like in the following example:
#
save ""

Pots reiniciar-ho per deixar que tot es configuri usant

sud systemctl restart redis.service

Verifica l’estat de Redis amb aquesta ordre:

sud systemctl status redis

2. Instal·la el mòdul PHP redis

Si estàs executant una distribució Ubuntu o Debian, pots instal·lar el mòdul Redis amb una apt-get install

apt-get update
apt-get install php7.4-redis
phpinfo mostrant el motor PHP amb el mòdul "redis" habilitat.
phpinfo que mostra el motor PHP amb el mòdul “redis” habilitat.

3. Instal·la el complement de memòria cau d’objectes

Inicia sessió al teu administrador de WordPress i afegeix un nou complement. Per exemple, cerqueu a Redis i seleccioneu aquest complement específic de memòria cau d’objectes de Redis.

Afegeixiu el complement Redis Object Cache

Instal·la i activa el complement. Després dirigiu-vos a la configuració de Redis al menú del vostre tauler.

Ara has de fer clic al botó Habilitar memòria cau d’objectes. Això configurarà el connector de Redis usant la configuració predeterminada.

4. Habilita la connexió de socket a Redis per a un millor rendiment

Si esteu executant el vostre servei Redis al servidor juntament amb el vostre WordPress, el mètode de connexió de major rendiment és el socket UNIX.

Per configurar el nostre complement Redis Object Cache per connectar-se a través d’un socket, has de definir dues constants a la seva wp-config.php

define( 'WP_REDIS_PATH', '/var/run/redis/redis.sock' );
define( 'WP_REDIS_SCHEME', 'unix' );

NOTA: modifica la ruta WP_REDIS_PATH perquè apunti al teu socket redis real.

Ús del complement de memòria cau d’objectes de Redis

El complement Redis Object Cache de Till Krüss és molt simple.

Des del vostre panell d’administració de WordPress, podeu obrir les estadístiques de mètriques:

Mètriques de Memòria cau de Redis
La pestanya Mètriques mostra un impressionant temps de resposta de les consultes de Redis: menys de 4 mil·lisegons

Aquest complement també us ofereix l’opció de buidar la memòria cau des de la secció Descripció general:

Com esborrar la memòria cau d'objectes Redis

NOTA: si busques un complement de memòria cau d’objectes Redis de classe empresarial, hi ha una versió Pro d’aquest complement Object Cache Pro.

La memòria cau de buidatge de Redis

En general, no necessitem buidar la memòria cau d’objectes de Redis. Tot i així, de vegades és l’única opció quan les operacions de back-end no funcionen correctament, com en activar o desactivar un complement de WordPress.

L’opció Flush Cache és només per a la memòria cau d’objectes i és una bona pràctica per buidar o purgar tots els altres caixets HTML, per exemple, WP-Super-Cache.

Ultimes paraules

L’emmagatzematge en memòria cau d’objectes amb Redis pot augmentar la velocitat de generació de pàgines del vostre lloc de WordPress quan teniu un coll d’ampolla a la base de dades o una alta concurrència d’usuaris en pàgines dinàmiques.

A Wetopi ens encanta aconseguir coses complexes amb solucions simples i ràpides. Si voleu provar el vostre lloc de WordPress amb Redis Object Cache, no perdi el temps! registra’t i sol·licita la teva Migració gratis.

Resumidament, som uns techies apassionats per WordPress que hem creat Wetopi, un Hosting WordPress Gestionat, per minimitzar la fricció a la que tot professional s’enfronta en treballar i allotjar projectes WordPress.

Inclou servidors de desenvolupament Gratis.
No cal tarjeta de crèdit.

Compara Wetopi amb el teu hosting actual

Dóna’t d’alta, demana una migració i compara.

Sense cap compromís ni esforç per part teva, migrem una còpia del teu web.

Sense lletra petita.
Sense compromisos.
Sense targeta de crèdit.