You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
4.2 KiB
105 lines
4.2 KiB
# RedisShake 4.x: Redis Data Processing & Migration Tool
|
|
|
|
[![CI](https://github.com/tair-opensource/RedisShake/actions/workflows/ci.yml/badge.svg?event=push&branch=v4)](https://github.com/tair-opensource/RedisShake/actions/workflows/ci.yml)
|
|
[![CI](https://github.com/tair-opensource/RedisShake/actions/workflows/pages.yml/badge.svg?branch=v4)](https://github.com/tair-opensource/RedisShake/actions/workflows/pages.yml)
|
|
[![CI](https://github.com/tair-opensource/RedisShake/actions/workflows/release.yml/badge.svg?branch=v4)](https://github.com/tair-opensource/RedisShake/actions/workflows/release.yml)
|
|
|
|
- [中文文档](https://tair-opensource.github.io/RedisShake/)
|
|
- [English Documentation](https://tair-opensource.github.io/RedisShake/en/)
|
|
|
|
## Overview
|
|
|
|
RedisShake is a tool designed for processing and migrating Redis data. It offers the following features:
|
|
|
|
1. **Redis Compatibility**: RedisShake is compatible with Redis versions ranging from 2.8 to 7.2, and supports various
|
|
deployment methods including standalone, master-slave, sentinel, and cluster.
|
|
|
|
2. **Cloud Service Compatibility**: RedisShake works seamlessly with popular Redis-like databases provided by leading
|
|
cloud service providers, including but not limited to:
|
|
- [Alibaba Cloud - ApsaraDB for Redis](https://www.alibabacloud.com/product/apsaradb-for-redis)
|
|
- [Alibaba Cloud - Tair](https://www.alibabacloud.com/product/tair)
|
|
- [AWS - ElastiCache](https://aws.amazon.com/elasticache/)
|
|
- [AWS - MemoryDB](https://aws.amazon.com/memorydb/)
|
|
|
|
3. **Module Compatibility**: RedisShake is compatible
|
|
with [TairString](https://github.com/tair-opensource/TairString), [TairZSet](https://github.com/tair-opensource/TairZset),
|
|
and [TairHash](https://github.com/tair-opensource/TairHash) modules.
|
|
|
|
4. **Multiple Export Modes**: RedisShake supports PSync, RDB, and Scan export modes.
|
|
|
|
5. **Data Processing**: RedisShake enables data filtering and transformation through custom scripts.
|
|
|
|
## Getting Started
|
|
|
|
### Installation
|
|
|
|
#### Download the Binary Package
|
|
|
|
Download the binary package directly from the [Releases](https://github.com/tair-opensource/RedisShake/releases) page.
|
|
|
|
#### Compile from Source
|
|
|
|
To compile from source, ensure that you have a Golang environment set up on your local machine:
|
|
|
|
```shell
|
|
git clone https://github.com/alibaba/RedisShake
|
|
cd RedisShake
|
|
sh build.sh
|
|
```
|
|
|
|
### Usage
|
|
|
|
Assume you have two Redis instances:
|
|
|
|
* Instance A: 127.0.0.1:6379
|
|
* Instance B: 127.0.0.1:6380
|
|
|
|
Create a new configuration file `shake.toml`:
|
|
|
|
```toml
|
|
[sync_reader]
|
|
address = "127.0.0.1:6379"
|
|
|
|
[redis_writer]
|
|
address = "127.0.0.1:6380"
|
|
```
|
|
|
|
To start RedisShake, run the following command:
|
|
|
|
```shell
|
|
./redis-shake shake.toml
|
|
```
|
|
|
|
For more detailed information, please refer to the documentation:
|
|
|
|
- [中文文档](https://tair-opensource.github.io/RedisShake/)
|
|
- [English Documentation](https://tair-opensource.github.io/RedisShake/en/)
|
|
|
|
## Contributing
|
|
|
|
We welcome contributions from the community. For significant changes, please open an issue first to discuss what you
|
|
would like to change. We are particularly interested in:
|
|
|
|
1. Adding support for more modules
|
|
2. Enhancing support for Readers and Writers
|
|
3. Sharing your Lua scripts and best practices
|
|
|
|
## History
|
|
|
|
RedisShake is a project actively maintained by the [Tair team](https://github.com/tair-opensource) at Alibaba Cloud. Its
|
|
evolution can be traced back to its initial version, which was forked
|
|
from [redis-port](https://github.com/CodisLabs/redis-port).
|
|
|
|
During its evolution:
|
|
|
|
- The [RedisShake 2.x](https://github.com/tair-opensource/RedisShake/tree/v2) version brought a series of improvements
|
|
and updates, enhancing its overall stability and performance.
|
|
- The [RedisShake 3.x](https://github.com/tair-opensource/RedisShake/tree/v3) version represented a significant
|
|
milestone where the entire codebase was completely rewritten and optimized, leading to better efficiency and
|
|
usability.
|
|
- The current version, [RedisShake 4.x](https://github.com/tair-opensource/RedisShake/tree/v4), has further enhanced
|
|
features related to readers, configuration, observability, and functions.
|
|
|
|
## License
|
|
|
|
RedisShake is open-sourced under the [MIT license](https://github.com/tair-opensource/RedisShake/blob/v2/license.txt).
|
|
|