{"id":1806,"date":"2011-03-29T10:28:41","date_gmt":"2011-03-29T10:28:41","guid":{"rendered":"http:\/\/www.gosquared.com\/liquidicity\/?p=1806"},"modified":"2019-11-28T12:52:12","modified_gmt":"2019-11-28T12:52:12","slug":"memcache-and-persistence","status":"publish","type":"post","link":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence","title":{"rendered":"Memcache and persistence"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg\" alt=\"Develop with Geoff at GoSquared\" title=\"Develop with Geoff at GoSquared\" width=\"790\" height=\"100\" \/><\/p>\n<p>There are a lot of new database systems popping up that can be interpreted by the newbie as &#8220;memcache, but with persistence&#8221;: MemcacheDB, Membase, redis, Project Voldemort etc. I&#8217;ve seen the term &#8220;persistent Memcache&#8221; being thrown around a lot, which is an oxymoron in itself, as the term &#8220;persistent&#8221; undermines the implied ephemeral nature of a &#8220;memory cache&#8221;. We must be careful not to mislead those impressionable by buzzwords into adopting the wrong technology for the wrong uses.<\/p>\n<p>It&#8217;s not uncommon to hear the comparison &#8220;like a persistent version of memcache&#8221; being thrown about, and it is understandable why it is used. While brave new ground is being covered by these new DBMs, this simile acts as a straightforward introduction to these new technologies and how they work. If you&#8217;ve worked with web development or MySQL for any tangible amount of time, chances are you&#8217;ve had experience with Memcache and its simple key\/value data model. So it&#8217;s a great technique to help tame these wild and mysterious new technologies so that we understand them better in terms of what we already know.<\/p>\n<p>However, we must be careful not to let this comparison transcend the fundamental differences between these systems. I fear that many regard &#8220;persistent Memcache&#8221; as a drop-in replacement for the original Memcache so that they don&#8217;t need to worry about cache timeouts or its ephemeral nature. Whereas the important distinction to make here is that these systems are <em>databases<\/em>, and Memcache is a <em>cache<\/em>, and nothing else. For best performance, it is important that both are still used in a way that complements their design and intended usage. I am worried this likeness will foster poor data model design, as developers feel more secure with interchangeably using their caches as databases, and vice versa, adopting the wrong technologies and software design paradigms on this premise. Sure, many of these &#8220;NoSQL&#8221; persistent databases can be used as a cache, but to engineers building high performance systems, it is important to keep the distinction in mind to avoid unnecessary overheads.<\/p>\n<p><a href=\"https:\/\/www.gosquared.com\/resources\/the-fundamentals-of-web-analytics\/?utm_campaign=old_posts&#038;utm_source=blog\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/static.gosquared.com\/images\/liquidicity\/19_05_23_Analytics\/2x\/19_05_23_download_guide@2x.jpg\" width=\"1400\" height=\"900\" alt=\"download free analytics ebook\" class=\"alignnone size-medium\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are a lot of new database systems popping up that can be interpreted by the newbie as &#8220;memcache, but&#8230;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1452],"tags":[93,119,255,273,688],"class_list":["post-1806","post","type-post","status-publish","format-standard","hentry","category-engineering","tag-amazon","tag-aws","tag-database","tag-development","tag-persistence"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.6 (Yoast SEO v19.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Memcache and persistence - GoSquared 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:\/\/www.gosquared.com\/blog\/memcache-and-persistence\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Memcache and persistence\" \/>\n<meta property=\"og:description\" content=\"There are a lot of new database systems popping up that can be interpreted by the newbie as &#8220;memcache, but...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence\" \/>\n<meta property=\"og:site_name\" content=\"GoSquared Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GoSquared\" \/>\n<meta property=\"article:published_time\" content=\"2011-03-29T10:28:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-28T12:52:12+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TheDeveloper\" \/>\n<meta name=\"twitter:site\" content=\"@GoSquared\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geoff Wagstaff\" \/>\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\":\"Organization\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\",\"name\":\"GoSquared\",\"url\":\"https:\/\/www.gosquared.com\/blog\/\",\"sameAs\":[\"https:\/\/instagram.com\/gosquaredteam\",\"https:\/\/www.linkedin.com\/company\/go-squared-ltd.\",\"https:\/\/www.facebook.com\/GoSquared\",\"https:\/\/twitter.com\/GoSquared\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png\",\"contentUrl\":\"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png\",\"width\":1270,\"height\":250,\"caption\":\"GoSquared\"},\"image\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#website\",\"url\":\"https:\/\/www.gosquared.com\/blog\/\",\"name\":\"GoSquared Blog\",\"description\":\"Turn visitors into customers.\",\"publisher\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.gosquared.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage\",\"url\":\"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg\",\"contentUrl\":\"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage\",\"url\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence\",\"name\":\"Memcache and persistence - GoSquared Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage\"},\"datePublished\":\"2011-03-29T10:28:41+00:00\",\"dateModified\":\"2019-11-28T12:52:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.gosquared.com\/blog\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Memcache and persistence\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage\"},\"author\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448\"},\"headline\":\"Memcache and persistence\",\"datePublished\":\"2011-03-29T10:28:41+00:00\",\"dateModified\":\"2019-11-28T12:52:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage\"},\"wordCount\":344,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage\"},\"thumbnailUrl\":\"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg\",\"keywords\":[\"Amazon\",\"AWS\",\"Database\",\"Development\",\"Persistence\"],\"articleSection\":[\"Engineering\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448\",\"name\":\"Geoff Wagstaff\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g\",\"caption\":\"Geoff Wagstaff\"},\"sameAs\":[\"https:\/\/twitter.com\/TheDeveloper\"],\"url\":\"https:\/\/www.gosquared.com\/blog\/author\/echo\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Memcache and persistence - GoSquared 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:\/\/www.gosquared.com\/blog\/memcache-and-persistence","og_locale":"en_US","og_type":"article","og_title":"Memcache and persistence","og_description":"There are a lot of new database systems popping up that can be interpreted by the newbie as &#8220;memcache, but...","og_url":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence","og_site_name":"GoSquared Blog","article_publisher":"https:\/\/www.facebook.com\/GoSquared","article_published_time":"2011-03-29T10:28:41+00:00","article_modified_time":"2019-11-28T12:52:12+00:00","og_image":[{"url":"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg"}],"twitter_card":"summary_large_image","twitter_creator":"@TheDeveloper","twitter_site":"@GoSquared","twitter_misc":{"Written by":"Geoff Wagstaff","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.gosquared.com\/blog\/#organization","name":"GoSquared","url":"https:\/\/www.gosquared.com\/blog\/","sameAs":["https:\/\/instagram.com\/gosquaredteam","https:\/\/www.linkedin.com\/company\/go-squared-ltd.","https:\/\/www.facebook.com\/GoSquared","https:\/\/twitter.com\/GoSquared"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png","contentUrl":"https:\/\/www.gosquared.com\/blog\/wp-content\/uploads\/2015\/07\/gosquared.png","width":1270,"height":250,"caption":"GoSquared"},"image":{"@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"WebSite","@id":"https:\/\/www.gosquared.com\/blog\/#website","url":"https:\/\/www.gosquared.com\/blog\/","name":"GoSquared Blog","description":"Turn visitors into customers.","publisher":{"@id":"https:\/\/www.gosquared.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gosquared.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage","url":"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg","contentUrl":"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg"},{"@type":"WebPage","@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage","url":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence","name":"Memcache and persistence - GoSquared Blog","isPartOf":{"@id":"https:\/\/www.gosquared.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage"},"datePublished":"2011-03-29T10:28:41+00:00","dateModified":"2019-11-28T12:52:12+00:00","breadcrumb":{"@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gosquared.com\/blog\/memcache-and-persistence"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gosquared.com\/blog"},{"@type":"ListItem","position":2,"name":"Memcache and persistence"}]},{"@type":"Article","@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#article","isPartOf":{"@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage"},"author":{"@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448"},"headline":"Memcache and persistence","datePublished":"2011-03-29T10:28:41+00:00","dateModified":"2019-11-28T12:52:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#webpage"},"wordCount":344,"commentCount":1,"publisher":{"@id":"https:\/\/www.gosquared.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#primaryimage"},"thumbnailUrl":"http:\/\/static.gosquared.com\/images\/liquidicity\/09_12_06_geoffdev_790x100.jpg","keywords":["Amazon","AWS","Database","Development","Persistence"],"articleSection":["Engineering"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.gosquared.com\/blog\/memcache-and-persistence#respond"]}]},{"@type":"Person","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/56a3341790c8a0603f96066fb8d42448","name":"Geoff Wagstaff","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.gosquared.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/66792d2e4d04406697b9a5f322664691590a386bc15b7146d143bbca07aa8889?s=96&d=mm&r=g","caption":"Geoff Wagstaff"},"sameAs":["https:\/\/twitter.com\/TheDeveloper"],"url":"https:\/\/www.gosquared.com\/blog\/author\/echo"}]}},"wps_subtitle":"Subtitle","_links":{"self":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts\/1806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/comments?post=1806"}],"version-history":[{"count":0,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/posts\/1806\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/media?parent=1806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/categories?post=1806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gosquared.com\/blog\/wp-json\/wp\/v2\/tags?post=1806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}