{"id":16253994,"url":"https://github.com/felixge/go-redis","last_synced_at":"2025-03-19T21:30:25.034Z","repository":{"id":8975483,"uuid":"10719308","full_name":"felixge/go-redis","owner":"felixge","description":"A redis implementation written in Go.","archived":false,"fork":false,"pushed_at":"2013-06-16T12:06:17.000Z","size":107,"stargazers_count":55,"open_issues_count":0,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-15T08:33:45.653Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/felixge.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}},"created_at":"2013-06-16T11:45:53.000Z","updated_at":"2024-12-28T11:47:29.000Z","dependencies_parsed_at":"2022-09-09T23:22:55.191Z","dependency_job_id":null,"html_url":"https://github.com/felixge/go-redis","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/felixge%2Fgo-redis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixge%2Fgo-redis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixge%2Fgo-redis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felixge%2Fgo-redis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felixge","download_url":"https://codeload.github.com/felixge/go-redis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244507821,"owners_count":20463688,"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":[],"created_at":"2024-10-10T15:19:35.258Z","updated_at":"2025-03-19T21:30:24.701Z","avatar_url":"https://github.com/felixge.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# go-redis\n\nA redis implementation in Go.\n\nThanks to US Airways treating me to an unexpected 9 hour layover at PHL, I\nfound myself with a little extra time, so I hit the bar and decided to see if I\ncould implement a Go server implementing the [redis\nprotocol](file://localhost/Users/felix/Desktop/redis.html) and GET/SET\ncommands.\n\nI spend probably 2 - 3 hours on this, and the result is kind of neat, as it\nseems to perform almost as well as redis itself without attempting any forms of\noptimizations yet.\n\nGiven that I'm now stuck at BRU, I'll probably implement this in node.js as\nwell for comparison. To be continued ...\n\n## Running\n\n```\ngo run main.go\n```\n\n\n## Performance\n\nThe numbers below should give you a rough idea, but don't take the numbers too\nseriously as I've not done any extensive analysis here.\n\n**go-redis:**\n\n```\n$ redis-benchmark -t GET,SET -n 100000\n====== SET ======\n  100000 requests completed in 1.18 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n98.25% \u003c= 1 milliseconds\n99.99% \u003c= 2 milliseconds\n100.00% \u003c= 2 milliseconds\n84459.46 requests per second\n\n====== GET ======\n  100000 requests completed in 1.17 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n98.33% \u003c= 1 milliseconds\n100.00% \u003c= 1 milliseconds\n85616.44 requests per second\n```\n\n**redis:**\n\n```\n$ redis-benchmark -t GET,SET -n 100000\n====== SET ======\n  100000 requests completed in 1.11 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.95% \u003c= 1 milliseconds\n99.97% \u003c= 2 milliseconds\n100.00% \u003c= 2 milliseconds\n89847.26 requests per second\n\n====== GET ======\n  100000 requests completed in 1.12 seconds\n  50 parallel clients\n  3 bytes payload\n  keep alive: 1\n\n99.95% \u003c= 1 milliseconds\n100.00% \u003c= 1 milliseconds\n89206.06 requests per second\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixge%2Fgo-redis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelixge%2Fgo-redis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelixge%2Fgo-redis/lists"}