{"id":135335,"date":"2024-09-06T10:30:55","date_gmt":"2024-09-06T05:00:55","guid":{"rendered":"https:\/\/www.vskills.in\/certification\/tutorial\/?page_id=135335"},"modified":"2024-09-06T10:34:26","modified_gmt":"2024-09-06T05:04:26","slug":"config-caching-and-retrieving-config-objects","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/","title":{"rendered":"Config Caching and Retrieving Config Objects"},"content":{"rendered":"\n<p>In FastAPI applications, it&#8217;s often necessary to load and access configuration settings frequently. To improve performance, you can implement caching mechanisms to avoid redundant configuration loading. This section will explore techniques for caching configuration objects and retrieving them efficiently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Caching Configuration Objects<\/strong><\/h2>\n\n\n\n<p><strong>Create a Caching Function:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p><code>import cachetools <\/code><\/p>\n\n\n\n<p><code>@cachetools.cached(maxsize=128) <\/code><\/p>\n\n\n\n<p><code>def get_settings(): <\/code><\/p>\n\n\n\n<p><code># Load configuration from environment variables or a file <\/code><\/p>\n\n\n\n<p><code>settings = Settings() <\/code><\/p>\n\n\n\n<p><code>return settings <\/code><\/p>\n\n\n\n<p>This function uses <code class=\"\">cachetools<\/code> to cache the <code class=\"\">Settings<\/code> object. The <code class=\"\">maxsize<\/code> parameter specifies the maximum number of cached items.<\/p>\n\n\n\n<p><strong>Use the Caching Function in Dependencies:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<p><code>from fastapi import Depends <\/code><\/p>\n\n\n\n<p><code>def get_settings(settings: Settings = Depends(get_settings)): <\/code><\/p>\n\n\n\n<p><code>return settings<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Retrieving Config Objects<\/strong><\/h2>\n\n\n\n<p>To retrieve the cached configuration object, simply call the <code class=\"\">get_settings<\/code> function:<\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@app.get(\"\/\")\ndef read_root(settings: Settings = Depends(get_settings)):\n    return {\"debug\": settings.debug, \"database_url\": settings.database_url}\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Additional Considerations<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cache Invalidation:<\/strong> If your configuration values change during runtime, you might need to invalidate the cache to ensure that the application uses the latest values. You can use cachetools&#8217; <code class=\"\">ttl<\/code> parameter to set a time-to-live for cached items, or manually invalidate the cache when necessary.<\/li>\n\n\n\n<li><strong>Cache Storage:<\/strong> For more complex caching scenarios, consider using specialized caching libraries like Redis or Memcached. These libraries offer features like distributed caching and persistence.<\/li>\n\n\n\n<li><strong>Performance Considerations:<\/strong> While caching can improve performance, be mindful of the trade-offs. Caching can introduce complexity and potential issues if not managed properly.<\/li>\n<\/ul>\n\n\n\n<p><strong>Example with Redis:<\/strong><\/p>\n\n\n\n<p>Python<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import redis\nfrom fastapi import Depends\nfrom cachetools import cached, LRUCache\n\nredis_client = redis.Redis(host=\"localhost\", port=6379)\n\n@cached(cache=LRUCache(maxsize=128), key=lambda: \"settings\")\ndef get_settings():\n    # Load configuration from environment variables or a file\n    settings = Settings()\n    redis_client.set(\"settings\", settings.json())\n    return settings\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In FastAPI applications, it&#8217;s often necessary to load and access configuration settings frequently. To improve performance, you can implement caching mechanisms to avoid redundant configuration loading. This section will explore techniques for caching configuration objects and retrieving them efficiently. Caching Configuration Objects Create a Caching Function: Python import cachetools @cachetools.cached(maxsize=128) def get_settings(): # Load configuration&#8230;<\/p>\n","protected":false},"author":16,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-135335","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Config Caching and Retrieving Config Objects - Tutorial<\/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.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Config Caching and Retrieving Config Objects - Tutorial\" \/>\n<meta property=\"og:description\" content=\"In FastAPI applications, it&#8217;s often necessary to load and access configuration settings frequently. To improve performance, you can implement caching mechanisms to avoid redundant configuration loading. This section will explore techniques for caching configuration objects and retrieving them efficiently. Caching Configuration Objects Create a Caching Function: Python import cachetools @cachetools.cached(maxsize=128) def get_settings(): # Load configuration...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-06T05:04:26+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/\",\"name\":\"Config Caching and Retrieving Config Objects - Tutorial\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2024-09-06T05:00:55+00:00\",\"dateModified\":\"2024-09-06T05:04:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Config Caching and Retrieving Config Objects\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Config Caching and Retrieving Config Objects - Tutorial","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.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/","og_locale":"en_US","og_type":"article","og_title":"Config Caching and Retrieving Config Objects - Tutorial","og_description":"In FastAPI applications, it&#8217;s often necessary to load and access configuration settings frequently. To improve performance, you can implement caching mechanisms to avoid redundant configuration loading. This section will explore techniques for caching configuration objects and retrieving them efficiently. Caching Configuration Objects Create a Caching Function: Python import cachetools @cachetools.cached(maxsize=128) def get_settings(): # Load configuration...","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-09-06T05:04:26+00:00","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/","name":"Config Caching and Retrieving Config Objects - Tutorial","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2024-09-06T05:00:55+00:00","dateModified":"2024-09-06T05:04:26+00:00","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/config-caching-and-retrieving-config-objects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Config Caching and Retrieving Config Objects"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135335","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=135335"}],"version-history":[{"count":2,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135335\/revisions"}],"predecessor-version":[{"id":135352,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/135335\/revisions\/135352"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=135335"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=135335"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=135335"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}