{"id":23588132,"url":"https://github.com/sonirico/mecachis","last_synced_at":"2025-05-07T10:35:27.129Z","repository":{"id":92458791,"uuid":"226498864","full_name":"sonirico/mecachis","owner":"sonirico","description":"LRU, LFU, LFRU caches implementation, 缓存实现","archived":false,"fork":false,"pushed_at":"2021-02-09T22:45:58.000Z","size":140,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T09:04:53.100Z","etag":null,"topics":["cache","lfu","lrfu","lru","memory-cache"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sonirico.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-12-07T11:17:52.000Z","updated_at":"2024-12-04T01:28:03.000Z","dependencies_parsed_at":"2023-06-02T12:45:39.247Z","dependency_job_id":null,"html_url":"https://github.com/sonirico/mecachis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonirico%2Fmecachis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonirico%2Fmecachis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonirico%2Fmecachis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sonirico%2Fmecachis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sonirico","download_url":"https://codeload.github.com/sonirico/mecachis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252860403,"owners_count":21815510,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cache","lfu","lrfu","lru","memory-cache"],"created_at":"2024-12-27T05:12:29.824Z","updated_at":"2025-05-07T10:35:27.120Z","avatar_url":"https://github.com/sonirico.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Mecachis\n\n![Ay mecachis!](./art/mecachis.png)\n\n- Is your system running out of resources?\n- Are your services unable to scale?\n- Do you think that a good and clean architecture seems like too much?\n- Is your API slow as hell because it does more than it should?\n\nIf you have answered all those questions with a \"yes\", fear no longer. This\nbrand-new package aims to someday provide those extra layers of \n_cachabstraction_ and indirection that your application needs. Remember: You\ncan install a cache in the frontend, in front of a web server or in between\nany two services that need to communicate with each other. That way, no\none would ever know where the source of truth is but yeah, the app\nruns smoothly.\n\nNow, jokes apart, this is just another academic repo to learn. This\ntime I'm into caches and the wide range of strategies implemented out\nthere to adapt caching to a wider range of scenarios. What I would\nlike to achieve with this repo is gaining deeper knowledge on data \nstructures and algorithms. Beyond that, it would be even nicer if:\n\n- More than 5 strategies are implemented [3/5]\n    - [x] LRU\n    - [x] LFU\n    - [x] LFRU\n- Caches are distributed over the network\n- Any kind of background persistence is achieved\n\n## Credits\n\n### Cache eviction algorithms\n\nBuf of course, algorithms implemented here are not of my invention, but slightly modified\nto my particular needs and influenced by my knowledge state, though. I was heavily inspired\nby [this wikipedia entry](https://en.wikipedia.org/wiki/Cache_replacement_policies) about cache\neviction algos.\n\n**External links and references**\n\n- LFRU: M. Bilal and S. -G. Kang, \"A Cache Management Scheme for Efficient Content Eviction and Replication in Cache Networks,\" in IEEE Access, vol. 5, pp. 1692-1701, 2017, doi: 10.1109/ACCESS.2017.2669344. **Paper**: https://arxiv.org/ftp/arxiv/papers/1702/1702.04078.pdf **Patent**: https://patentimages.storage.googleapis.com/60/c5/34/c94ab8b27e2f9d/US10819823.pdf","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonirico%2Fmecachis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsonirico%2Fmecachis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsonirico%2Fmecachis/lists"}