{"id":231836,"date":"2022-12-30T10:44:00","date_gmt":"2022-12-30T07:44:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231836"},"modified":"2022-12-30T19:54:51","modified_gmt":"2022-12-30T16:54:51","slug":"entendendo-o-cache-no-wordpress-parte-3","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/entendendo-o-cache-no-wordpress-parte-3\/","title":{"rendered":"Entendendo o cache no WordPress, parte 3"},"content":{"rendered":"\n<p>Nos dois posts anteriores, falei sobre <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/entendendo-o-cache-no-wordpress-parte-1\/\" title=\"os fundamentos do cache\">os fundamentos do cache<\/a> e <a href=\"https:\/\/wordpress.mediadoma.com\/pt-pt\/entendendo-o-cache-no-wordpress-parte-2\/\" title=\"como o cache funciona no WordPress\">como o cache funciona no WordPress<\/a>, pelo menos at\u00e9 certo ponto.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44620ee5.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-159394-61e6f44620ee5.png\" alt=\"Entendendo o cache no WordPress, parte 3\"><\/a><\/p>\n<p>Mas lembre-se que esta s\u00e9rie foi motivada por um e-mail de algu\u00e9m que achou que eu poderia fazer um trabalho melhor explicando como os transientes e o cache funcionam no WordPress e por que \u00e9 importante entender como tudo funciona em conjunto.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44926a61.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-159394-61e6f44926a61.png\" alt=\"Entendendo o cache no WordPress, parte 3\"><\/a><\/p>\n<p>Portanto, neste post, pretendo reunir tudo e falar sobre como a <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API Transients<\/a> funciona em conjunto com o <a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQL<\/a>, por que \u00e9 importante entender o relacionamento e como lidar com isso daqui para frente.<\/p>\n<h2>Como funcionam os transientes no WordPress?<\/h2>\n<h3>Como funcionam os transit\u00f3rios<\/h3>\n<p>Primeiro, de acordo com o Codex, os transientes funcionam assim:<\/p>\n<blockquote>\n<p>Esta p\u00e1gina cont\u00e9m a documenta\u00e7\u00e3o t\u00e9cnica do <strong>WordPress Transients API<\/strong>, que oferece uma maneira simples e padronizada de armazenar dados em cache no banco de dados temporariamente, dando-lhe um nome personalizado e um per\u00edodo de tempo ap\u00f3s o qual expirar\u00e1 e ser\u00e1 exclu\u00eddo.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">API de transit\u00f3rios atrav\u00e9s do WordPress Codex<\/a><\/p>\n<\/blockquote>\n<p>A ideia por tr\u00e1s disso parece bastante simples, certo?<\/p>\n<ol>\n<li>Voc\u00ea salva uma op\u00e7\u00e3o no banco de dados,<\/li>\n<li>Defina um tempo para quanto tempo deve existir,<\/li>\n<li>Em seguida, ele \u00e9 armazenado por esse per\u00edodo de tempo<\/li>\n<li>E, se solicitado ap\u00f3s a expira\u00e7\u00e3o, \u00e9 recuperado e movido de volta ao seu estado transit\u00f3rio.<\/li>\n<\/ol>\n<p>Ent\u00e3o, onde est\u00e1 a confus\u00e3o?<\/p>\n<p>Como mencionado no primeiro post, n\u00e3o estava claro por quanto tempo as informa\u00e7\u00f5es transit\u00f3rias estariam dispon\u00edveis. Em vez de ser uma quantidade m\u00ednima de tempo em que os dados estar\u00e3o dispon\u00edveis, \u00e9 um m\u00e1ximo.<\/p>\n<p>Isso significa que, se voc\u00ea definir algo para estar dispon\u00edvel por um dia, ele ficar\u00e1 dispon\u00edvel por um dia. N\u00e3o menos; n\u00e3o mais. E depois que esse tempo tiver expirado, ele ter\u00e1 que ser recriado no estado transit\u00f3rio mais uma vez.<\/p>\n<p>Pelo menos, esta \u00e9 a sabedoria convencional por tr\u00e1s disso. N\u00e3o est\u00e1 errado, mas h\u00e1 mais do que isso. \u00c9 aqui que fica um pouco mais t\u00e9cnico, no entanto.<\/p>\n<h3>Qual o papel do MySQL?<\/h3>\n<p>\u00c0 medida que o WordPress, a hospedagem e outras tecnologias amadureceram, os bancos de dados subjacentes que alimentam o aplicativo tamb\u00e9m mudaram. Isso n\u00e3o \u00e9 uma coisa boa ou ruim (embora talvez possamos argumentar que \u00e9 uma coisa boa em um post futuro).<\/p>\n<p>Mas pode ajudar a explicar por que os transientes funcionam da maneira que funcionam, dada a pilha com a qual estamos acostumados a trabalhar e como eles podem n\u00e3o funcionar como esperado sem os sistemas de banco de dados.<\/p>\n<p>Se voc\u00ea optar por usar o MySQL como banco de dados para sua instala\u00e7\u00e3o do WordPress, o que arrisco dizer que a maioria das pessoas ainda usa, ent\u00e3o as informa\u00e7\u00f5es que est\u00e3o na <a href=\"https:\/\/codex.wordpress.org\/Options_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tabela de op\u00e7\u00f5es<\/a> (que \u00e9 onde os transientes tamb\u00e9m s\u00e3o armazenados) ent\u00e3o a API de Transients funcionar\u00e1 como descrito acima.<\/p>\n<p>Mas o que acontece quando voc\u00ea introduz outras formas de cache, como cache de objetos por meio de software como <a href=\"https:\/\/www.memcached.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Memcached<\/a> ou <a href=\"https:\/\/redis.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Redis<\/a> e assim por diante?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-159394-61e6f44d72d4f.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-159394-61e6f44d72d4f.png\" alt=\"Entendendo o cache no WordPress, parte 3\"><\/a><\/p>\n<p>Nesse caso, os dados podem n\u00e3o estar dispon\u00edveis conforme o esperado. Em resumo, o software de armazenamento em cache pode optar por descartar informa\u00e7\u00f5es que n\u00e3o s\u00e3o solicitadas com a mesma frequ\u00eancia que outras informa\u00e7\u00f5es. Ou seja, d\u00e1 um n\u00edvel de prioridade \u00e0s informa\u00e7\u00f5es solicitadas com mais frequ\u00eancia.<\/p>\n<h3>Seguindo em frente<\/h3>\n<p>Quando voc\u00ea leva em conta todos os itens acima, voc\u00ea est\u00e1 olhando para v\u00e1rias coisas:<\/p>\n<ol>\n<li>a API de Transientes,<\/li>\n<li>um banco de dados,<\/li>\n<li>um sistema de cache de terceiros.<\/li>\n<\/ol>\n<p>Quando voc\u00ea tem a API Transients e um banco de dados padr\u00e3o, voc\u00ea ficar\u00e1 bem porque as coisas funcionar\u00e3o como voc\u00ea espera.<\/p>\n<p>Mas se voc\u00ea introduzir um sistema de cache de terceiros, o resultado pode ser diferente. Especificamente, as coisas podem n\u00e3o \u2013 e provavelmente n\u00e3o funcionar\u00e3o \u2013 da maneira que voc\u00ea espera.<\/p>\n<p>Ou seja, o sistema de cache de terceiros pode desconsiderar qualquer informa\u00e7\u00e3o que queira descartar sempre que achar necess\u00e1rio remov\u00ea-la. Isso significa que tudo o que voc\u00ea acha que pode ter dispon\u00edvel no cache n\u00e3o estar\u00e1 l\u00e1.<\/p>\n<p>Enfim, o melhor conselho que posso dar \u00e9 o seguinte:<\/p>\n<ol>\n<li>Se voc\u00ea estiver usando o MySQL e a API Transients, as coisas funcionar\u00e3o conforme descrito no Codex.<\/li>\n<li>Se, por outro lado, voc\u00ea estiver usando outro sistema de cache, \u00e9 importante entender como ele funciona e como voc\u00ea pode escrever c\u00f3digo nele para que funcione como voc\u00ea gostaria.<\/li>\n<\/ol>\n<p>E com isso, n\u00e3o h\u00e1 mais nada a acrescentar nesta cartilha para entender o cache no WordPress.<\/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>Entender o cache no WordPress \u00e9 importante ao criar solu\u00e7\u00f5es de alto desempenho. Mas a API de Transientes nem sempre funciona. Aqui est\u00e1 o porqu\u00ea.<\/p>\n","protected":false},"author":1,"featured_media":235967,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[898,753,722,837,920,816,846,1091,867],"tags":[1170],"class_list":["post-231836","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo-2","category-codigo-aberto","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\/231836","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=231836"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/231836\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/235967"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=231836"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=231836"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=231836"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}