{"id":323,"date":"2026-05-15T19:37:59","date_gmt":"2026-05-15T17:37:59","guid":{"rendered":"https:\/\/gorankostic.com\/blog\/?p=323"},"modified":"2026-05-15T19:38:00","modified_gmt":"2026-05-15T17:38:00","slug":"cache-architecture","status":"publish","type":"post","link":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/","title":{"rendered":"Cache Architecture"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Cache Architecture<\/h2>\n\n\n\n<p><strong>Excerpt:<\/strong> <br>Cache architecture defini\u0161e na\u010din na koji se sadr\u017eaj, podaci i stati\u010dki fajlovi \u010duvaju i isporu\u010duju korisnicima bez nepotrebnog ponovnog generisanja. Dobro postavljen cache sistem ubrzava sajt, smanjuje optere\u0107enje servera i pobolj\u0161ava stabilnost u produkcionom radu.<\/p>\n\n\n\n<p><strong>Blog \u010dlanak:<\/strong><\/p>\n\n\n\n<p>Cache architecture je jedan od najva\u017enijih delova performance optimizacije. Umesto da server svaki put iznova generi\u0161e istu stranicu, cache omogu\u0107ava da se ve\u0107 pripremljen rezultat brzo isporu\u010di korisniku.<\/p>\n\n\n\n<p>Postoji vi\u0161e nivoa cache-a. Browser cache \u010duva fajlove kod korisnika, server-side cache \u010duva generisane stranice ili podatke na serveru, object cache ubrzava rad sa bazom, a CDN cache isporu\u010duje stati\u010dki sadr\u017eaj sa lokacija bli\u017eih korisniku.<\/p>\n\n\n\n<p>Dobra cache arhitektura mora biti prilago\u0111ena tipu sajta. Jednostavan prezentacioni sajt mo\u017ee agresivno ke\u0161irati ve\u0107inu stranica, dok WooCommerce, membership ili dinami\u010dka aplikacija zahtevaju pa\u017eljivija pravila zbog korpe, checkout-a, naloga i personalizovanog sadr\u017eaja.<\/p>\n\n\n\n<p>Najve\u0107a gre\u0161ka je posmatrati cache kao univerzalno dugme za ubrzanje. Ako se ke\u0161ira pogre\u0161an sadr\u017eaj, korisnik mo\u017ee videti tu\u0111u korpu, zastarele cene, staru verziju stranice ili neispravan checkout. Brzina ne sme ugroziti ta\u010dnost i funkcionalnost.<\/p>\n\n\n\n<p>Page cache je posebno koristan za javne stranice koje se ne menjaju \u010desto. Blog \u010dlanci, landing stranice, kategorije i informativni sadr\u017eaj mogu se servirati mnogo br\u017ee kada se unapred generi\u0161u i \u010duvaju kao ke\u0161irana verzija.<\/p>\n\n\n\n<p>Object cache poma\u017ee kod sajtova koji mnogo koriste bazu podataka. WordPress, WooCommerce i sli\u010dni sistemi \u010desto ponavljaju iste upite. Kada se rezultati \u010duvaju kroz Redis ili sli\u010dan sistem, baza se manje optere\u0107uje, a stranice se br\u017ee generi\u0161u.<\/p>\n\n\n\n<p>Cache invalidacija je klju\u010dni deo arhitekture. Kada se promeni tekst, cena, proizvod, slika ili pode\u0161avanje, sistem mora znati koji cache treba obrisati. Lo\u0161a invalidacija dovodi do prikazivanja zastarelog sadr\u017eaja, \u0161to mo\u017ee biti ozbiljan problem kod prodaje.<\/p>\n\n\n\n<p>CDN cache dodaje jo\u0161 jedan sloj optimizacije. Slike, CSS, JavaScript i drugi stati\u010dki fajlovi mogu se isporu\u010divati br\u017ee i stabilnije, posebno korisnicima koji nisu fizi\u010dki blizu origin servera. Ipak, CDN mora biti pravilno uskla\u0111en sa serverom i aplikacijom.<\/p>\n\n\n\n<p>Kod sajtova sa tracking skriptama, cookie bannerima i dinami\u010dkim elementima cache treba testirati pa\u017eljivo. Optimizacija ne sme prekinuti evente, forme, popup logiku, checkout korake ili personalizovane delove interfejsa.<\/p>\n\n\n\n<p>Cache architecture je uspe\u0161na kada ubrzava sajt bez naru\u0161avanja funkcionalnosti. Pravilna kombinacija browser cache-a, page cache-a, object cache-a, CDN-a i jasnih pravila za invalidaciju daje stabilan, brz i pouzdan produkcioni sistem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cache architecture defini\u0161e na\u010din na koji se sadr\u017eaj, podaci i stati\u010dki fajlovi \u010duvaju i isporu\u010duju korisnicima bez nepotrebnog ponovnog generisanja. Dobro postavljen cache sistem ubrzava [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19,17],"tags":[],"class_list":["post-323","post","type-post","status-publish","format-standard","hentry","category-performance-optimization","category-recovery-optimization"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Cache Architecture - Goran Kostic Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cache Architecture\" \/>\n<meta property=\"og:description\" content=\"Cache architecture defini\u0161e na\u010din na koji se sadr\u017eaj, podaci i stati\u010dki fajlovi \u010duvaju i isporu\u010duju korisnicima bez nepotrebnog ponovnog generisanja. Dobro postavljen cache sistem ubrzava [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/\" \/>\n<meta property=\"og:site_name\" content=\"Goran Kostic Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-15T17:37:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-15T17:38:00+00:00\" \/>\n<meta name=\"author\" content=\"WebixDesign\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"WebixDesign\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/\"},\"author\":{\"name\":\"WebixDesign\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"headline\":\"Cache Architecture\",\"datePublished\":\"2026-05-15T17:37:59+00:00\",\"dateModified\":\"2026-05-15T17:38:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/\"},\"wordCount\":432,\"commentCount\":0,\"articleSection\":[\"Performance Optimization\",\"RECOVERY &amp; OPTIMIZATION\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/\",\"name\":\"Cache Architecture - Goran Kostic Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-15T17:37:59+00:00\",\"dateModified\":\"2026-05-15T17:38:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/2026\\\/05\\\/15\\\/cache-architecture\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cache Architecture\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/\",\"name\":\"Goran Kostic Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/#\\\/schema\\\/person\\\/0f800bfa90359ff9d2204020d58099c8\",\"name\":\"WebixDesign\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g\",\"caption\":\"WebixDesign\"},\"sameAs\":[\"https:\\\/\\\/gorankostic.com\\\/blog\"],\"url\":\"https:\\\/\\\/gorankostic.com\\\/blog\\\/author\\\/webixdesign\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Cache Architecture - Goran Kostic Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/","og_locale":"en_US","og_type":"article","og_title":"Cache Architecture","og_description":"Cache architecture defini\u0161e na\u010din na koji se sadr\u017eaj, podaci i stati\u010dki fajlovi \u010duvaju i isporu\u010duju korisnicima bez nepotrebnog ponovnog generisanja. Dobro postavljen cache sistem ubrzava [&hellip;]","og_url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/","og_site_name":"Goran Kostic Blog","article_published_time":"2026-05-15T17:37:59+00:00","article_modified_time":"2026-05-15T17:38:00+00:00","author":"WebixDesign","twitter_card":"summary_large_image","twitter_misc":{"Written by":"WebixDesign","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/#article","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/"},"author":{"name":"WebixDesign","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"headline":"Cache Architecture","datePublished":"2026-05-15T17:37:59+00:00","dateModified":"2026-05-15T17:38:00+00:00","mainEntityOfPage":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/"},"wordCount":432,"commentCount":0,"articleSection":["Performance Optimization","RECOVERY &amp; OPTIMIZATION"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/","url":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/","name":"Cache Architecture - Goran Kostic Blog","isPartOf":{"@id":"https:\/\/gorankostic.com\/blog\/#website"},"datePublished":"2026-05-15T17:37:59+00:00","dateModified":"2026-05-15T17:38:00+00:00","author":{"@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8"},"breadcrumb":{"@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/gorankostic.com\/blog\/2026\/05\/15\/cache-architecture\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gorankostic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Cache Architecture"}]},{"@type":"WebSite","@id":"https:\/\/gorankostic.com\/blog\/#website","url":"https:\/\/gorankostic.com\/blog\/","name":"Goran Kostic Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gorankostic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/gorankostic.com\/blog\/#\/schema\/person\/0f800bfa90359ff9d2204020d58099c8","name":"WebixDesign","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0b4c4d73af3b6d4c23d5191555e82cdc78a86604f69eae8d2c3d23e45d3967c5?s=96&d=mm&r=g","caption":"WebixDesign"},"sameAs":["https:\/\/gorankostic.com\/blog"],"url":"https:\/\/gorankostic.com\/blog\/author\/webixdesign\/"}]}},"_links":{"self":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/comments?post=323"}],"version-history":[{"count":1,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/323\/revisions"}],"predecessor-version":[{"id":324,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/posts\/323\/revisions\/324"}],"wp:attachment":[{"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/media?parent=323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/categories?post=323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gorankostic.com\/blog\/wp-json\/wp\/v2\/tags?post=323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}