{"id":16874400,"url":"https://github.com/xiaost/blobcached","last_synced_at":"2025-04-11T11:22:04.441Z","repository":{"id":87082972,"uuid":"86556147","full_name":"xiaost/blobcached","owner":"xiaost","description":"Blobcached is a memcached protocol-compatible cache server for blob on SSD.","archived":false,"fork":false,"pushed_at":"2018-11-29T16:14:12.000Z","size":31,"stargazers_count":12,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-25T07:41:38.306Z","etag":null,"topics":["cache","memcached"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/xiaost.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2017-03-29T08:18:21.000Z","updated_at":"2022-06-17T04:55:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"4feaf426-8511-491b-a39f-5c5728c9bb30","html_url":"https://github.com/xiaost/blobcached","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaost%2Fblobcached","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaost%2Fblobcached/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaost%2Fblobcached/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xiaost%2Fblobcached/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xiaost","download_url":"https://codeload.github.com/xiaost/blobcached/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248382081,"owners_count":21094535,"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","memcached"],"created_at":"2024-10-13T15:32:33.662Z","updated_at":"2025-04-11T11:22:04.412Z","avatar_url":"https://github.com/xiaost.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"Blobcached\n=====\nBlobcached is a memcached protocol-compatible cache server for blob on SSD.\n\n### Supported commands\n| Command | Format |\n| ------ | ------ |\n| get | get \u003ckey\u003e [\u003ckey\u003e]+\\r\\n |\n| set | set \u003ckey\u003e \u003cflags\u003e \u003cexpiry\u003e \u003cdatalen\u003e [noreply]\\r\\n\u003cdata\u003e\\r\\n |\n| delete | delete \u003ckey\u003e [noreply]\\r\\n  |\n| touch | touch \u003ckey\u003e \u003cexpiry\u003e[noreply]\\r\\n  |\n| stats | stats\\r\\n   |\n\n### How it works\n#### concepts\n| Name |  |\n| ------ | ------ |\n| indexfile | an indexfile contains many of `items` powered by [blotdb](https://github.com/boltdb/bolt) |\n| datafile | a regular file for storing values |\n| item | an item is made up of `key`, `offset`, `term`, `size` anchoring the value in datafile |\n| term | everytime the `datafile` is full, the `term` of `datafile` is increased  |\n\n#### Command: Set\n* get the `offset` and `term` of `datafile`\n* write value to the `datafile`\n* write `item` with the `offset`, `term` and `key` to the `indexfile`\n\n#### Command: Get \n* get the `item` by `key`\n* check `term` and `offset` of the `item` against `datafile` \n* read value from the `datafile`\n\n#### Command: Touch\n* implemented by `get` \u0026 `set`\n\n#### GC\n* Blobcached scans and removes expired or invalid `items` in the `indexfile`\n* by default, the rate up to 32k items/second\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaost%2Fblobcached","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxiaost%2Fblobcached","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxiaost%2Fblobcached/lists"}