{"id":19839339,"url":"https://github.com/redislabs/pubsub-sub-bench","last_synced_at":"2025-05-01T19:30:18.479Z","repository":{"id":141980676,"uuid":"298251947","full_name":"RedisLabs/pubsub-sub-bench","owner":"RedisLabs","description":"Redis Pub/Sub Subscriber Workload generator ","archived":false,"fork":false,"pushed_at":"2023-03-06T12:22:08.000Z","size":17,"stargazers_count":5,"open_issues_count":2,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-06T16:54:21.868Z","etag":null,"topics":["pubsub","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RedisLabs.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":"2020-09-24T11:01:01.000Z","updated_at":"2024-07-18T20:19:25.000Z","dependencies_parsed_at":"2024-06-20T03:02:24.670Z","dependency_job_id":"7a5bd41d-e8d9-46b1-8db1-72d0da19fc96","html_url":"https://github.com/RedisLabs/pubsub-sub-bench","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/RedisLabs%2Fpubsub-sub-bench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fpubsub-sub-bench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fpubsub-sub-bench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fpubsub-sub-bench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedisLabs","download_url":"https://codeload.github.com/RedisLabs/pubsub-sub-bench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251932511,"owners_count":21667157,"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":["pubsub","redis"],"created_at":"2024-11-12T12:21:51.594Z","updated_at":"2025-05-01T19:30:18.182Z","avatar_url":"https://github.com/RedisLabs.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Overview\n\nWhen benchmarking a Pub/Sub Systems, we specifically require two distinct roles ( publishers and subscribers ) as benchmark participants - this repo contains code to mimic the subscriber workload on Redis Pub/Sub.\n\nSeveral aspects can dictate the overall system performance, like the:\n- Payload size (controlled on publisher)\n- Number of Pub/Sub channels (controlled on publisher)\n- Total message traffic per channel (controlled on publisher)\n- Number of subscribers per channel (controlled on subscriber)\n- Subscriber distribution per shard and channel (controlled on subscriber)\n\n\n## Getting Started\n\n### Installing\nThis benchmark go program is **know to be supported for go \u003e= 1.11**. \nThe easiest way to get and install the Subscriber Go program is to use `go get` and then `go install`:\n\n```\ngo get github.com/RedisLabs/pubsub-sub-bench\ncd $GOPATH/src/github.com/RedisLabs/pubsub-sub-bench\nmake\n```\n\n#### Updating \nTo update the Subscriber Go program use `go get -u` to retrieve the latest version:.\n```\ngo get -u github.com/RedisLabs/pubsub-sub-bench\ncd $GOPATH/src/github.com/RedisLabs/pubsub-sub-bench\nmake\n```\n\n#### Limitations \n\nThere are know limitations on old go version due to the radix/v3 dependency, given that on old versions, \nthe go command in GOPATH mode does not distinguish between major versions, meaning that it will look for the package `package github.com/mediocregopher/radix/v3` instead of v3 of `package github.com/mediocregopher/radix`.\nTherefore you should only use this tool on go \u003e= 1.11. \n\n## Usage of pubsub-sub-bench\n\n```\nUsage of pubsub-sub-bench:\n  -channel-maximum int\n        channel ID maximum value ( each channel has a dedicated thread ). (default 100)\n  -channel-minimum int\n        channel ID minimum value ( each channel has a dedicated thread ). (default 1)\n  -client-output-buffer-limit-pubsub string\n        Specify client output buffer limits for clients subscribed to at least one pubsub channel or pattern. If the value specified is different that the one present on the DB, this setting will apply.\n  -client-update-tick int\n        client update tick. (default 1)\n  -host string\n        redis host. (default \"127.0.0.1\")\n  -json-out-file string\n        Name of json output file, if not set, will not print to json.\n  -messages int\n        Number of total messages per subscriber per channel.\n  -oss-cluster-api-distribute-subscribers\n        read cluster slots and distribute subscribers among them.\n  -port string\n        redis port. (default \"6379\")\n  -print-messages\n        print messages.\n  -subscriber-prefix string\n        prefix for subscribing to channel, used in conjunction with key-minimum and key-maximum. (default \"channel-\")\n  -subscribers-per-channel int\n        number of subscribers per channel. (default 1)\n  -subscribers-placement-per-channel string\n        (dense,sparse) dense - Place all subscribers to channel in a specific shard. sparse- spread the subscribers across as many shards possible, in a round-robin manner. (default \"dense\")\n  -test-time int\n        Number of seconds to run the test, after receiving the first message.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredislabs%2Fpubsub-sub-bench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredislabs%2Fpubsub-sub-bench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredislabs%2Fpubsub-sub-bench/lists"}