{"id":231239,"date":"2022-12-30T10:30:00","date_gmt":"2022-12-30T07:30:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231239"},"modified":"2022-12-30T19:54:41","modified_gmt":"2022-12-30T16:54:41","slug":"foerstaa-cachelagring-i-wordpress-del-3","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/sv\/foerstaa-cachelagring-i-wordpress-del-3\/","title":{"rendered":"F\u00f6rst\u00e5 cachelagring i WordPress, del 3"},"content":{"rendered":"\n<p>I de tv\u00e5 tidigare inl\u00e4ggen har jag pratat om <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/foerstaa-cachning-i-wordpress-del-1\/\" title=\"grunderna i cachning\">grunderna i cachning<\/a> och <a href=\"https:\/\/wordpress.mediadoma.com\/sv\/foerstaa-cachning-i-wordpress-del-2\/\" title=\"hur cachning fungerar i WordPress\">hur cachning fungerar i WordPress<\/a>, \u00e5tminstone till en viss grad.<\/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=\"F\u00f6rst\u00e5 cachelagring i WordPress, del 3\"><\/a><\/p>\n<p>Men kom ih\u00e5g att den h\u00e4r serien motiverades av ett mejl fr\u00e5n n\u00e5gon som tyckte att jag kunde g\u00f6ra ett b\u00e4ttre jobb med att f\u00f6rklara hur transienter och cachning fungerar i WordPress och varf\u00f6r det \u00e4r viktigt att f\u00f6rst\u00e5 hur allt fungerar tillsammans med varandra.<\/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=\"F\u00f6rst\u00e5 cachelagring i WordPress, del 3\"><\/a><\/p>\n<p>S\u00e5 i det h\u00e4r inl\u00e4gget siktar jag p\u00e5 att f\u00e5 ihop allt och prata om hur <a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API<\/a> fungerar tillsammans med <a href=\"https:\/\/www.mysql.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQL<\/a>, varf\u00f6r det \u00e4r viktigt att f\u00f6rst\u00e5 relationen och hur man hanterar detta fram\u00e5t.<\/p>\n<h2>Hur fungerar transienter i WordPress?<\/h2>\n<h3>Hur transienter fungerar<\/h3>\n<p>F\u00f6r det f\u00f6rsta, enligt Codex, fungerar transienter s\u00e5 h\u00e4r:<\/p>\n<blockquote>\n<p>Den h\u00e4r sidan inneh\u00e5ller den tekniska dokumentationen f\u00f6r <strong>WordPress Transients API<\/strong>, som erbjuder ett enkelt och standardiserat s\u00e4tt att lagra cachad data i databasen tillf\u00e4lligt genom att ge den ett anpassat namn och en tidsram efter vilken den kommer att l\u00f6pa ut och raderas.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Transients_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Transients API via WordPress Codex<\/a><\/p>\n<\/blockquote>\n<p>Tanken bakom detta verkar enkel nog, eller hur?<\/p>\n<ol>\n<li>Du sparar ett alternativ i databasen,<\/li>\n<li>St\u00e4ll in en tid f\u00f6r hur l\u00e4nge den ska finnas,<\/li>\n<li>Sedan lagras det s\u00e5 l\u00e4nge<\/li>\n<li>Och, om efterfr\u00e5gad efter utg\u00e5ngen, h\u00e4mtas och flyttas tillbaka till sitt \u00f6verg\u00e5ende tillst\u00e5nd.<\/li>\n<\/ol>\n<p>S\u00e5 var ligger f\u00f6rvirringen?<\/p>\n<p>Som n\u00e4mndes i det f\u00f6rsta inl\u00e4gget var jag inte klar \u00f6ver hur l\u00e4nge den \u00f6verg\u00e5ende informationen skulle vara tillg\u00e4nglig. Ist\u00e4llet f\u00f6r att vara ett minimum av tid som data kommer att vara tillg\u00e4nglig, \u00e4r det ett maximum.<\/p>\n<p>Det betyder att om du st\u00e4ller in n\u00e5got att vara tillg\u00e4ngligt f\u00f6r en dag, kommer det att vara tillg\u00e4ngligt f\u00f6r en dag. Inget mindre; inte mer. Och efter att den tiden har g\u00e5tt ut m\u00e5ste den \u00e5terskapas till det transienta tillst\u00e5ndet igen.<\/p>\n<p>\u00c5tminstone \u00e4r detta den konventionella visdomen bakom. Det \u00e4r inte fel men det ligger mer i det. Det \u00e4r h\u00e4r det blir lite mer tekniskt.<\/p>\n<h3>Vilken roll spelar MySQL?<\/h3>\n<p>I takt med att WordPress, hosting och andra teknologier har mognat har de underliggande databaserna som driver applikationen ocks\u00e5 f\u00f6r\u00e4ndrats. Det h\u00e4r \u00e4r inte bra eller d\u00e5ligt (\u00e4ven om vi kanske skulle kunna h\u00e4vda att det \u00e4r bra i ett framtida inl\u00e4gg).<\/p>\n<p>Men det kan hj\u00e4lpa till att f\u00f6rklara varf\u00f6r transienter fungerar som de g\u00f6r med tanke p\u00e5 den stack som vi \u00e4r vana vid att arbeta med och hur de kanske inte fungerar som f\u00f6rv\u00e4ntat utan databassystem.<\/p>\n<p>Om du v\u00e4ljer att anv\u00e4nda MySQL som databas f\u00f6r din WordPress-installation, vilket jag v\u00e5gar s\u00e4ga att de flesta fortfarande g\u00f6r, d\u00e5 kommer informationen som finns i <a href=\"https:\/\/codex.wordpress.org\/Options_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Options-tabellen<\/a> (som ocks\u00e5 \u00e4r d\u00e4r transienter lagras) s\u00e5 kommer Transients API att fungera som som beskrivs ovan.<\/p>\n<p>Men vad h\u00e4nder n\u00e4r du introducerar andra former av cachning som objektcache genom programvara som <a href=\"https:\/\/www.memcached.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Memcached<\/a> eller <a href=\"https:\/\/redis.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Redis<\/a> och s\u00e5 vidare?<\/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=\"F\u00f6rst\u00e5 cachelagring i WordPress, del 3\"><\/a><\/p>\n<p>I s\u00e5 fall kanske uppgifterna inte \u00e4r tillg\u00e4ngliga som du f\u00f6rv\u00e4ntar dig. Kort sagt kan cachningsmjukvaran v\u00e4lja att sl\u00e4ppa information som inte efterfr\u00e5gas lika ofta som annan information. Det vill s\u00e4ga, det ger en prioritetsniv\u00e5 \u00e5t information som efterfr\u00e5gas oftare.<\/p>\n<h3>G\u00e5r vidare<\/h3>\n<p>N\u00e4r du tar h\u00e4nsyn till allt ovanst\u00e5ende tittar du p\u00e5 flera saker:<\/p>\n<ol>\n<li>Transients API,<\/li>\n<li>en databas,<\/li>\n<li>ett cachingsystem fr\u00e5n tredje part.<\/li>\n<\/ol>\n<p>N\u00e4r du har Transients API och en standarddatabas, kommer du att klara dig i och med att saker och ting kommer att fungera som du f\u00f6rv\u00e4ntar dig.<\/p>\n<p>Men om du introducerar ett cachingsystem fr\u00e5n tredje part kan resultatet bli annorlunda. Specifikt kanske saker och ting inte \u2013 och kommer troligen inte \u2013 att fungera p\u00e5 det s\u00e4tt du f\u00f6rv\u00e4ntar dig.<\/p>\n<p>Det vill s\u00e4ga, tredje parts cachningssystem kan bortse fr\u00e5n all information som det vill sl\u00e4ppa n\u00e4r det tror att det beh\u00f6ver ta bort det. Det betyder att allt du tror att du kan ha tillg\u00e4ngligt i cachen inte kommer att finnas d\u00e4r.<\/p>\n<p>I slut\u00e4ndan \u00e4r det b\u00e4sta r\u00e5det jag kan ge detta:<\/p>\n<ol>\n<li>Om du anv\u00e4nder MySQL och Transients API kommer saker och ting att fungera som beskrivs i Codex.<\/li>\n<li>Om du \u00e5 andra sidan anv\u00e4nder ett annat cachningssystem \u00e4r det viktigt att f\u00f6rst\u00e5 hur det fungerar och hur du kan skriva kod mot det s\u00e5 att det fungerar som du vill.<\/li>\n<\/ol>\n<p>Och med det finns det inget mer att l\u00e4gga till i denna primer f\u00f6r att f\u00f6rst\u00e5 caching i WordPress.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Inspelningsk\u00e4lla:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Att f\u00f6rst\u00e5 caching i WordPress \u00e4r viktigt n\u00e4r man bygger effektiva l\u00f6sningar. Men Transients API kanske inte alltid fungerar. H\u00e4r \u00e4r varf\u00f6r.<\/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":[838,848,901,755,922,818,724,1092,868],"tags":[1173],"class_list":["post-231239","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guide-foer-nyboerjare","category-handledningar","category-koda","category-oeppen-kaella","category-oevrig","category-plugins-3","category-utvecklaren","category-webbplatshastighet","category-wordpress-9","tag-affiai-sv"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/comments?post=231239"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/posts\/231239\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media\/235967"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/media?parent=231239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/categories?post=231239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/sv\/wp-json\/wp\/v2\/tags?post=231239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}