{"id":36883683,"url":"https://github.com/31z4/harvest","last_synced_at":"2026-01-12T15:27:45.111Z","repository":{"id":57577789,"uuid":"91233113","full_name":"31z4/harvest","owner":"31z4","description":"Harvest helps you understand what's inside your Redis","archived":false,"fork":false,"pushed_at":"2018-10-26T03:37:33.000Z","size":245,"stargazers_count":49,"open_issues_count":5,"forks_count":7,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-20T11:57:09.449Z","etag":null,"topics":["cli","golang","redis","tool"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/31z4.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-05-14T09:30:27.000Z","updated_at":"2023-07-23T12:16:25.000Z","dependencies_parsed_at":"2022-09-26T19:10:35.832Z","dependency_job_id":null,"html_url":"https://github.com/31z4/harvest","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/31z4/harvest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/31z4%2Fharvest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/31z4%2Fharvest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/31z4%2Fharvest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/31z4%2Fharvest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/31z4","download_url":"https://codeload.github.com/31z4/harvest/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/31z4%2Fharvest/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28340746,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["cli","golang","redis","tool"],"created_at":"2026-01-12T15:27:45.038Z","updated_at":"2026-01-12T15:27:45.084Z","avatar_url":"https://github.com/31z4.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Go Report Card](https://goreportcard.com/badge/github.com/31z4/harvest)](https://goreportcard.com/report/github.com/31z4/harvest)\n[![Coverage Status](https://coveralls.io/repos/github/31z4/harvest/badge.svg?branch=master)](https://coveralls.io/github/31z4/harvest?branch=master)\n[![CircleCI](https://circleci.com/gh/31z4/harvest.svg?style=svg)](https://circleci.com/gh/31z4/harvest)\n\n# Harvest\n\n`harvest` helps you understand what's inside your Redis. It samples Redis keys and shows top key prefixes.\n\nThe tool is designed to be simple and efficient. It does not require Redis [`DEBUG OBJECT`](https://redis.io/commands/debug-object) command to be available. Which is good if you're using AWS ElastiCache.\n\n`harvest` should work with any version of Redis. Although, it's tested only with the latest stable version.\n\n## Usage\n\nHere is an example of how to use `harvest` and understand its output. Assuming Redis hostname is `redis` and it listens on a standard port `6379`.\n\n```console\n$ harvest redis://redis\nwarning: database size (12) is less than the number of samples (1000)\n\n_kombu.binding.: 33.98% (648)\nunacked: 9.49% (181)\n_kombu.binding.celery: 9.18% (175)\n_kombu.binding.reply.celery.pidbox: 6.45% (123)\ntest: 5.98% (114)\n_kombu.binding.schedule: 5.35% (102)\n_kombu.binding.blocks: 5.19% (99)\n_kombu.binding.default: 4.82% (92)\n_kombu.binding.celery.pidbox: 4.72% (90)\n_kombu.binding.celeryev: 4.46% (85)\n```\n\nThe first line of the output warns us that the number of samples is greater than the database size. Which basically means that each key will be sampled multiple times. In future releases [`SCAN`](https://redis.io/commands/scan) will be used instead of [`RANDOMKEY`](https://redis.io/commands/randomkey) in that case.\n\nThe second line tells that from `1000` randomly sampled keys `648` start from `_kombu.binding.` and it's `33.98%` of all samples. The rest of the lines follow same pattern.\n\n### Docker\n\nYou can use [31z4/harvest](https://hub.docker.com/r/31z4/harvest/) Docker image to run the tool. Assuming Redis container name is `redis` and it listens on a standard port `6379`.\n\n```console\n$ docker run --link redis:redis -it --rm 31z4/harvest redis://redis\n```\n\n## Feedback\n\nFeedback is greatly appreciated. At this stage, the maintainers are most interested in feedback centered on the user experience (UX) of the tool. Do you have cases that the tool supports well, or doesn't support at all? Do any of the commands have surprising effects, output, or results?\n\n## Contributing\n\nContributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers. The project follows the typical GitHub pull request model. See [CONTRIBUTING.md](CONTRIBUTING.md) for more details. Before starting any work, please either comment on an existing issue, or file a new one.\n\n## License\n\nThis project is licensed under the GPLv3 License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F31z4%2Fharvest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F31z4%2Fharvest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F31z4%2Fharvest/lists"}