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 complertaTable of Contents
- Redis és bo per a WordPress?
- Com analitzar el temps de generació de la pàgina de WordPress
- Com implemento el caixet de Redis a WordPress
- Ús del complement de memòria cau d’objectes de Redis
- Ultimes paraules
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!
- 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.
- 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.
- 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
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.
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”:
Una vegada que feu clic a Redis Object Cache, una finestra flotant us mostrarà els detalls del complement del Redis Object Cache:
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:
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
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.
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:
Aquest complement també us ofereix l’opció de buidar la memòria cau des de la secció Descripció general:
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.
Això et pot interessar:
-
jQuery: ús actual i alternatives per a WordPress
-
Construint un Hosting WordPress Gestionat
-
Redis Object Cache per a WordPress: guia complerta
-
Necessitem encara AMP per al nostre lloc web?
-
Desvetllem com assolir un 100 a Google Audit Lighthouse
-
Com millorar la conversió de les campanyes SEM
-
Millorant el rendiment y seguretat de WordPress amb TLS 1.3
-
Millorar el Flux de Treball al Dissenyar amb WordPress
-
Com optimitzar per a un WordPress ràpid