{"id":19839321,"url":"https://github.com/redislabs/redisraft","last_synced_at":"2025-04-12T18:49:50.679Z","repository":{"id":36962136,"uuid":"121676470","full_name":"RedisLabs/redisraft","owner":"RedisLabs","description":"A Redis Module that make it possible to create a consistent Raft cluster from multiple Redis instances.","archived":false,"fork":false,"pushed_at":"2023-07-18T12:19:07.000Z","size":4249,"stargazers_count":826,"open_issues_count":15,"forks_count":63,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-04-03T21:13:32.867Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","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.txt","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":"2018-02-15T20:03:18.000Z","updated_at":"2025-04-03T18:29:52.000Z","dependencies_parsed_at":"2024-11-01T13:32:53.299Z","dependency_job_id":"be36bcee-1666-4d1b-96d4-fae0a93b59d0","html_url":"https://github.com/RedisLabs/redisraft","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/RedisLabs%2Fredisraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fredisraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fredisraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RedisLabs%2Fredisraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RedisLabs","download_url":"https://codeload.github.com/RedisLabs/redisraft/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248618218,"owners_count":21134199,"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-11-12T12:21:47.954Z","updated_at":"2025-04-12T18:49:50.645Z","avatar_url":"https://github.com/RedisLabs.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RedisRaft\n\n\u003e :warning: RedisRaft is still being developed and is not yet ready for any real production use. Please do not use it for any mission critical purpose at this time.\n\n### Strongly-Consistent Redis Deployments\n\nRedisRaft is a Redis module that implements the [Raft Consensus\nAlgorithm](https://raft.github.io/), making it possible to create strongly-consistent clusters of Redis servers.\n\nThe Raft algorithm is provided by a [standalone Raft\nlibrary](https://github.com/redislabs/raft). This is a fork of the original library created by Willem-Hendrik Thiart, which is now actively maintained by Redis Ltd.\n\n## Main Features\n\n* Strong consistency (in the language of [CAP](https://en.wikipedia.org/wiki/CAP_theorem), this system prioritizes consistency and partition-tolerance).\n* Support for most Redis data types and commands\n* Dynamic cluster configuration (adding / removing nodes)\n* Snapshots for log compaction\n* Configurable quorum or fast reads\n\n## Getting Started\n\n### Building\n\nTo compile the module, you will need:\n* Build essentials (a compiler, GNU make, etc.)\n* CMake\n* GNU autotools (autoconf, automake, libtool).\n\nTo build:\n\n    git clone https://github.com/RedisLabs/redisraft.git\n    cd redisraft\n    mkdir build \u0026\u0026 cd build\n    cmake ..\n    make\n\n`redisraft.so` will be created under the project directory.\n\n### Creating a RedisRaft Cluster\n\nRedisRaft requires Redis build from the 'unstable' branch. Build Redis first:\n    \n    git clone https://github.com/redis/redis  \n    cd redis\n    make \n    make install\n\nTo create a three-node cluster, start the first node:\n\n    redis-server \\\n        --port 5001 --dbfilename raft1.rdb \\\n        --loadmodule \u003cpath-to\u003e/redisraft.so \\\n        --raft.log-filename raftlog1.db \\\n        --raft.addr localhost:5001\n\nThen initialize the cluster:\n\n    redis-cli -p 5001 raft.cluster init\n\nNow start the second node, and run the `RAFT.CLUSTER JOIN` command to join it to the existing cluster:\n\n    redis-server \\\n        --port 5002 --dbfilename raft2.rdb \\\n        --loadmodule \u003cpath-to\u003e/redisraft.so \\\n        --raft.log-filename raftlog2.db \\\n        --raft.addr localhost:5002\n\n    redis-cli -p 5002 RAFT.CLUSTER JOIN localhost:5001\n\nNow add the third node in the same way:\n\n    redis-server \\\n        --port 5003 --dbfilename raft3.rdb \\\n        --loadmodule \u003cpath-to\u003e/redisraft.so \\\n        --raft.log-filename raftlog3.db \n        --raft.addr localhost:5003\n\n    redis-cli -p 5003 RAFT.CLUSTER JOIN localhost:5001\n\nTo query the cluster state, run the `INFO raft` command:\n\n    redis-cli -p 5001 INFO raft\n\nNow you can start using this RedisRaft cluster. All [supported Redis commands](docs/Using.md) will be executed in a strongly-consistent manner using the Raft protocol.\n\n## Documentation\n\nPlease consult the [documentation](docs/TOC.md) for more information.\n\n## License\n\nRedisRaft is licensed under the [Redis Source Available License 2.0 (RSALv2)](https://redis.com/legal/rsalv2-agreement) or the [Server Side Public License v1 (SSPLv1)](https://www.mongodb.com/licensing/server-side-public-license).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredislabs%2Fredisraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredislabs%2Fredisraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredislabs%2Fredisraft/lists"}