{"id":231818,"date":"2022-12-30T18:29:00","date_gmt":"2022-12-30T15:29:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231818"},"modified":"2022-12-30T18:35:37","modified_gmt":"2022-12-30T15:35:37","slug":"entendendo-o-cache-no-wordpress-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/entendendo-o-cache-no-wordpress-parte-1\/","title":{"rendered":"Entendendo o cache no WordPress, parte 1"},"content":{"rendered":"\n<p>Em maio, escrevi um artigo sobre <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-transitorios-do-wordpress-em-vez-de-cookies\/\" title=\"o uso da API do WordPress Transients.\">o uso da API do WordPress Transients.<\/a> Eu resumi o artigo assim:<\/p>\n<blockquote>\n<p>Para simular cookies e seu recurso de expira\u00e7\u00e3o, usar transientes do WordPress pode ser uma solu\u00e7\u00e3o vi\u00e1vel.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-transitorios-do-wordpress-em-vez-de-cookies\/\">https:\/\/wordpress.mediadoma.com\/pt-pt\/usando-transitorios-do-wordpress-em-vez-de-cookies\/<\/a><\/p>\n<\/blockquote>\n<p>Embora o objetivo do artigo fosse estabelecer uma base de como podemos projetar uma classe para trabalhar com a API Transients para simular o comportamento de cookies, um dos efeitos colaterais do artigo \u00e9 que ele n\u00e3o fez um bom trabalho de explicar como a API Transients (e, por proxy, como o MySQL) funciona.<\/p>\n<p>Isso foi trazido \u00e0 minha aten\u00e7\u00e3o por e-mail por David no <a href=\"https:\/\/updraftplus.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">UpDraft Plus.<\/a><\/p>\n<p>Ent\u00e3o eu achei \u00fatil falar sobre o conceito de cache de um n\u00edvel pr\u00e1tico, como ele \u00e9 implementado no WordPress, ent\u00e3o talvez veja como utilizar plugins ou tecnologias mais recentes para melhorar nossos sites e aplicativos, bem como ter um melhor entendimento.<\/p>\n<h2>Entendendo o cache: o b\u00e1sico<\/h2>\n<p>O conceito de cache \u00e9 relativamente f\u00e1cil. Mas acho que \u00e9 melhor demonstrado falando sobre serializa\u00e7\u00e3o e recupera\u00e7\u00e3o de dados sem armazenamento em cache, primeiro.<\/p>\n<h3>Sem cache<\/h3>\n<h4>Gravando dados<\/h4>\n<p>Sempre que voc\u00ea grava informa\u00e7\u00f5es no banco de dados subjacente, est\u00e1 gravando um registro \u2013 ou uma s\u00e9rie de registros \u2013 no banco de dados.<\/p>\n<p>Por exemplo, ao publicar uma postagem, voc\u00ea gravar\u00e1 um registro na tabela para postagens e na tabela para metadados de postagem, cada um relacionado por um ID de postagem.<\/p>\n<p>Como eles est\u00e3o relacionados n\u00e3o \u00e9 importante para este post.<\/p>\n<p>Em vez disso, o que devemos entender nesta parte \u00e9 que, quando os dados s\u00e3o gravados no banco de dados, pelo menos um registro, se n\u00e3o v\u00e1rios, \u00e9 criado.<\/p>\n<h4>Lendo dados<\/h4>\n<p>Quando um visitante chega ao site para ler esse post espec\u00edfico, todas as informa\u00e7\u00f5es desse post ser\u00e3o solicitadas do banco de dados, fornecidas ao aplicativo WordPress e renderizadas no front-end.<\/p>\n<p>Pense em todo esse processo como uma viagem:<\/p>\n<ol>\n<li>\u2753o visitante solicita a p\u00e1gina,<\/li>\n<li>\ud83d\udd0d o servidor web identificou qual p\u00e1gina carregar,<\/li>\n<li>\ud83d\udcc2 a p\u00e1gina \u00e9 solicitada do banco de dados de v\u00e1rias tabelas,<\/li>\n<li>\ud83c\udfd7 os dados s\u00e3o reunidos e enviados para o aplicativo principal,<\/li>\n<li>\ud83d\udda5 os dados s\u00e3o apresentados ao usu\u00e1rio.<\/li>\n<\/ol>\n<p>Assim, a viagem come\u00e7a quando o usu\u00e1rio solicita uma p\u00e1gina e termina quando a informa\u00e7\u00e3o \u00e9 apresentada a ele em seu navegador.<\/p>\n<h4>\u00c9 uma viagem<\/h4>\n<p>E, sem cache, isso acontece para todos os usu\u00e1rios. Ou seja, para cada usu\u00e1rio que visita seu site, uma viagem deve ser feita.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159466-61e6f57b465f7.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159466-61e6f57b465f7.png\" alt=\"Entendendo o cache no WordPress, parte 1\"><\/a><\/p>\n<p>Isso pode ficar muito caro em termos de recursos e tempo (especialmente dependendo do tamanho do seu banco de dados).<\/p>\n<p>Mas \u00e9 aqui que o cache pode entrar em jogo.<\/p>\n<h3>Antes de entrar em cache<\/h3>\n<p>A ideia por tr\u00e1s do cache \u00e9 tornar todo esse processo mais r\u00e1pido. Ou seja, se sabemos que uma viagem est\u00e1 prestes a acontecer, podemos manter a informa\u00e7\u00e3o em um local que j\u00e1 esteja montada e mais r\u00e1pida de recuperar.<\/p>\n<p>Antes de falar, por\u00e9m, que farei no pr\u00f3ximo post, observe que isso \u00e9 como fazer uma viagem ao disco r\u00edgido do servidor em que o site est\u00e1 hospedado cada vez que o site \u00e9 visitado.<\/p>\n<p>Porque, em \u00faltima an\u00e1lise, o banco de dados, os arquivos e todos os ativos necess\u00e1rios para alimentar o site residem em um disco r\u00edgido. E sim, coisas como unidades de estado s\u00f3lido podem tornar esse processo mais r\u00e1pido, ainda n\u00e3o \u00e9 o melhor poss\u00edvel.<\/p>\n<p>E \u00e9 a\u00ed que o cache entra em cena. Para entender melhor a API Transients, \u00e9 importante entender o cache, que primeiro requer uma compreens\u00e3o b\u00e1sica de como as coisas funcionam sem o cache.<\/p>\n<h3>\u00c9 um Primer<\/h3>\n<p>Portanto, considere isso uma cartilha b\u00e1sica sobre como funciona um site baseado em banco de dados sem armazenamento em cache. E ent\u00e3o vamos construir mais sobre isso no pr\u00f3ximo post.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Entendendo o cache no WordPress come\u00e7ando com o b\u00e1sico, entendendo o conceito de uma viagem em um site sem cache.<\/p>\n","protected":false},"author":1,"featured_media":223830,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,722,837,920,816,846,1091,867],"tags":[1170],"class_list":["post-231818","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-desenvolvedor","category-guia-para-iniciantes","category-outro","category-plug-ins","category-tutoriais","category-velocidade-do-site","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231818","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=231818"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231818\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/223830"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231818"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231818"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231818"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}