{"id":26503980,"url":"https://github.com/chrishoy/hybridcache-example","last_synced_at":"2026-05-15T23:40:15.478Z","repository":{"id":283347781,"uuid":"951472313","full_name":"chrishoy/HybridCache-Example","owner":"chrishoy","description":"OpenWeatherMap API example using FusionCache to provide a hybrid cache using Redis","archived":false,"fork":false,"pushed_at":"2025-04-08T10:21:46.000Z","size":19,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T11:24:41.646Z","etag":null,"topics":["dotnet-core","fusioncache","openweathermap-api","redis"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chrishoy.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-19T18:23:46.000Z","updated_at":"2025-04-08T10:21:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"0fca8757-2836-4c7e-95fc-e29fa4b5507d","html_url":"https://github.com/chrishoy/HybridCache-Example","commit_stats":null,"previous_names":["chrishoy/hybridcacheexample"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chrishoy/HybridCache-Example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrishoy%2FHybridCache-Example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrishoy%2FHybridCache-Example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrishoy%2FHybridCache-Example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrishoy%2FHybridCache-Example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chrishoy","download_url":"https://codeload.github.com/chrishoy/HybridCache-Example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chrishoy%2FHybridCache-Example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33083850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet-core","fusioncache","openweathermap-api","redis"],"created_at":"2025-03-20T19:29:32.048Z","updated_at":"2026-05-15T23:40:15.466Z","avatar_url":"https://github.com/chrishoy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## OpenWeather API Example usage using FusionCache and Redis\nThis is a simple example of how to use `FusionCache` in a .NET Core application to provide L1 and L2 caching.\n\nIt showcases selective cache invalidation using Tags.\n\nWe'll use this until Microsoft releases the official version of the HybridCache.\n\n`Microsoft.Extensions.Caching.HybridCache` is currently in preview only, so may change.\n\n### How to use\n- `docker-compose up -d` to start `redis` on port 6379\n- `dotnet run` to start the application\n- Try the http examples in `Examples.http` (or use Swagger UI)\n\n### Note\n- `Fusioncache` allows you to use multiple cache providers, but in this example, we are using only `MemoryCache` and `RedisCache`.\n- You can do tag based invalidation with `FusionCache` so you can invalidate ALL cache entries with that tag in one foul swoop.\n- The tag is a string, so you can use it to group cache entries together.\n- Invalidation via tags does not actually remove the cache entries from the cache, it just marks them as invalid.\n\n- Sign up to OpenWeatherMap and get your API key to use the weather API. Update in `appsettings.json`.\n ```\n {\n  \"Logging\": {\n    \"LogLevel\": {\n      \"Default\": \"Information\",\n      \"Microsoft.AspNetCore\": \"Warning\"\n    }\n  },\n  \"AllowedHosts\": \"*\",\n  \"OpenWeather\": {\n    \"ApiKey\": \"your-api-key-here\"\n  }\n}\n```\n\n### Changes\n- Added `FusionCache` to the project.\n- Added Configuration Options for `Redis` and `OpenWeatherApi`\n- Added resiliency to the OpenWeather API calls using decorator pattern\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrishoy%2Fhybridcache-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchrishoy%2Fhybridcache-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchrishoy%2Fhybridcache-example/lists"}