{"id":13511614,"url":"https://github.com/tair-opensource/RedisShake","last_synced_at":"2025-03-30T20:33:51.458Z","repository":{"id":37734187,"uuid":"173063554","full_name":"tair-opensource/RedisShake","owner":"tair-opensource","description":"RedisShake is a Redis data processing and migration tool.","archived":false,"fork":false,"pushed_at":"2024-10-24T07:09:38.000Z","size":26099,"stargazers_count":3827,"open_issues_count":104,"forks_count":698,"subscribers_count":73,"default_branch":"v4","last_synced_at":"2024-10-29T15:07:18.828Z","etag":null,"topics":["redis","redis-cluster","redis-proxy"],"latest_commit_sha":null,"homepage":"https://tair-opensource.github.io/RedisShake/","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/tair-opensource.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":"2019-02-28T07:30:10.000Z","updated_at":"2024-10-29T06:26:04.000Z","dependencies_parsed_at":"2023-02-08T17:32:05.597Z","dependency_job_id":"f716d6ad-7a9d-4d15-8276-804237bec9ce","html_url":"https://github.com/tair-opensource/RedisShake","commit_stats":{"total_commits":580,"total_committers":47,"mean_commits":"12.340425531914894","dds":0.4568965517241379,"last_synced_commit":"fcab819f3ed41e898b6f4b69c7f432c9733a8b8c"},"previous_names":["alibaba/redisshake"],"tags_count":83,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tair-opensource%2FRedisShake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tair-opensource%2FRedisShake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tair-opensource%2FRedisShake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tair-opensource%2FRedisShake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tair-opensource","download_url":"https://codeload.github.com/tair-opensource/RedisShake/tar.gz/refs/heads/v4","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245111949,"owners_count":20562512,"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":["redis","redis-cluster","redis-proxy"],"created_at":"2024-08-01T03:01:00.716Z","updated_at":"2025-03-30T20:33:51.453Z","avatar_url":"https://github.com/tair-opensource.png","language":"Go","funding_links":[],"categories":["Go","Redis-Manage"],"sub_categories":[],"readme":"# RedisShake: Redis Data Transformation and Migration Tool\n\n[![CI](https://img.shields.io/github/actions/workflow/status/tair-opensource/RedisShake/ci.yml?branch=v4\u0026label=CI\n)](https://github.com/tair-opensource/RedisShake/actions/workflows/ci.yml)\n[![Website](https://img.shields.io/website?url=https%3A%2F%2Ftair-opensource.github.io%2FRedisShake%2F\u0026up_message=%E4%B8%AD%E6%96%87%20%2F%20English\u0026up_color=red\u0026label=Doc\n)](https://tair-opensource.github.io/RedisShake/)\n[![Release](https://img.shields.io/github/v/release/tair-opensource/RedisShake?color=blue\u0026label=Release)](https://github.com/tair-opensource/RedisShake/releases)\n[![ghcr.io](https://ghcr-badge.egpl.dev/tair-opensource/redisshake/latest_tag?color=%231d63ed\u0026ignore=latest\u0026label=ghcr.io\u0026trim=)](https://github.com/tair-opensource/RedisShake/pkgs/container/redisshake)\n\n- [中文文档](https://tair-opensource.github.io/RedisShake/)\n- [English Documentation](https://tair-opensource.github.io/RedisShake/en/)\n\n![](./docs/intro.png)\n\n## Overview\n\nRedisShake is a powerful tool for Redis data transformation and migration, offering:\n\n1. **Zero Downtime Migration**: Enables seamless data migration without data loss or service interruption, ensuring continuous operation during the transfer process.\n\n2. **Redis Compatibility**: Supports Redis 2.8 to 7.4, across standalone, master-slave, sentinel, and cluster deployments.\n\n3. **Cloud Service Integration**: Seamlessly works with Redis-like databases from major cloud providers:\n   - Alibaba Cloud: [Tair (Redis® OSS-Compatible)](https://www.alibabacloud.com/en/product/tair)\n   - AWS: [ElastiCache](https://aws.amazon.com/elasticache/), [MemoryDB](https://aws.amazon.com/memorydb/)  \n\n4. **Module Support**: Compatible with [TairString](https://github.com/tair-opensource/TairString), [TairZSet](https://github.com/tair-opensource/TairZset), and [TairHash](https://github.com/tair-opensource/TairHash).\n\n5. **Flexible Data Source**: Supports [PSync](https://tair-opensource.github.io/RedisShake/zh/reader/sync_reader.html), [RDB](https://tair-opensource.github.io/RedisShake/zh/reader/rdb_reader.html), and [Scan](https://tair-opensource.github.io/RedisShake/zh/reader/scan_reader.html) data fetch methods.\n\n6. **Advanced Data Processing**: Enables custom [script-based data transformation](https://tair-opensource.github.io/RedisShake/zh/filter/function.html) and easy-to-use [data filter rules](https://tair-opensource.github.io/RedisShake/zh/filter/filter.html).\n\n## How to Get RedisShake\n\n1. Download from [Releases](https://github.com/tair-opensource/RedisShake/releases).\n\n2. Use Docker:\n```shell\ndocker run --network host \\\n    -e SYNC=true \\\n    -e SHAKE_SRC_ADDRESS=127.0.0.1:6379 \\\n    -e SHAKE_DST_ADDRESS=127.0.0.1:6380 \\\n    ghcr.io/tair-opensource/redisshake:latest\n```\n\n3. Build it yourself:\n```shell\ngit clone https://github.com/tair-opensource/RedisShake\ncd RedisShake\nsh build.sh\n```\n\n## How to Use RedisShake\n\nTo move data between two Redis instances and skip some keys:\n\n1. Make a file called `shake.toml` with these settings:\n```toml\n[sync_reader]\naddress = \"127.0.0.1:6379\"\n\n[redis_writer]\naddress = \"127.0.0.1:6380\"\n\n[filter]\n# skip keys with \"temp:\" or \"cache:\" prefix\nblock_key_prefix = [\"temp:\", \"cache:\"] \n```\n\n2. Run RedisShake:\n```shell\n./redis-shake shake.toml\n```\n\nFor more help, check the [docs](https://tair-opensource.github.io/RedisShake/zh/guide/mode.html).\n\n## History\n\nRedisShake, actively maintained by the [Tair team](https://github.com/tair-opensource) at Alibaba Cloud, evolved from [redis-port](https://github.com/CodisLabs/redis-port). Key milestones:\n\n- [RedisShake 2.x](https://github.com/tair-opensource/RedisShake/tree/v2): Improved stability and performance.\n- [RedisShake 3.x](https://github.com/tair-opensource/RedisShake/tree/v3): Complete codebase rewrite, enhancing efficiency and usability.\n- [RedisShake 4.x](https://github.com/tair-opensource/RedisShake/tree/v4): Enhanced readers, configuration, observability, and functions.\n\n## License\n\nRedisShake is open-sourced under the [MIT license](https://github.com/tair-opensource/RedisShake/blob/v2/license.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftair-opensource%2FRedisShake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftair-opensource%2FRedisShake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftair-opensource%2FRedisShake/lists"}