stickermule / Rump
Licence: mit
Hot sync two Redis servers using dumps.
Stars: ✭ 382
Projects that are alternatives of or similar to Rump
Foremast
Spinnaker Pipeline/Infrastructure Configuration and Templating Tool - Pipelines as Code.
Stars: ✭ 263 (-31.15%)
Mutual labels: aws, gcp
Terraform Kubestack
Terraform GitOps Framework — Everything you need to build reliable automation for AKS, EKS and GKE Kubernetes clusters in one free and open-source framework.
Stars: ✭ 300 (-21.47%)
Mutual labels: aws, gcp
Infracost
Cloud cost estimates for Terraform in pull requests💰📉 Love your cloud bill!
Stars: ✭ 4,505 (+1079.32%)
Mutual labels: aws, gcp
Daytona
a vault client, but for containers and servers.
Stars: ✭ 255 (-33.25%)
Mutual labels: aws, gcp
Ccat
Cloud Container Attack Tool (CCAT) is a tool for testing security of container environments.
Stars: ✭ 300 (-21.47%)
Mutual labels: aws, gcp
Devops Bash Tools
550+ DevOps Bash Scripts - AWS, GCP, Kubernetes, Kafka, Docker, APIs, Hadoop, SQL, PostgreSQL, MySQL, Hive, Impala, Travis CI, Jenkins, Concourse, GitHub, GitLab, BitBucket, Azure DevOps, TeamCity, Spotify, MP3, LDAP, Code/Build Linting, pkg mgmt for Linux, Mac, Python, Perl, Ruby, NodeJS, Golang, Advanced dotfiles: .bashrc, .vimrc, .gitconfig, .screenrc, .tmux.conf, .psqlrc ...
Stars: ✭ 226 (-40.84%)
Mutual labels: aws, gcp
Docker Android
Android in docker solution with noVNC supported and video recording
Stars: ✭ 4,042 (+958.12%)
Mutual labels: aws, gcp
Engine
Deploy your apps on any Cloud provider in just a few seconds
Stars: ✭ 1,132 (+196.34%)
Mutual labels: aws, gcp
Rpc Websockets
JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript
Stars: ✭ 344 (-9.95%)
Mutual labels: aws, gcp
Rdbox
RDBOX is an advanced IT platform for robotics and IoT developers that highly integrates cloud-native and edge computing technologies.
Stars: ✭ 246 (-35.6%)
Mutual labels: aws, gcp
Cloudblock
Cloudblock automates deployment of secure ad-blocking for all of your devices - even when mobile. Step-by-step text and video guides included! Compatible clouds include AWS, Azure, Google Cloud, and Oracle Cloud. Cloudblock deploys Wireguard VPN, Pi-Hole DNS Ad-blocking, and DNS over HTTPS in a cloud provider - or locally - using Terraform and Ansible.
Stars: ✭ 257 (-32.72%)
Mutual labels: aws, gcp
Arvados
An open source platform for managing and analyzing biomedical big data
Stars: ✭ 274 (-28.27%)
Mutual labels: aws, gcp
Kcli
Management tool for libvirt/aws/gcp/kubevirt/openstack/ovirt/vsphere/packet
Stars: ✭ 219 (-42.67%)
Mutual labels: aws, gcp
Spotty
Training deep learning models on AWS and GCP instances
Stars: ✭ 310 (-18.85%)
Mutual labels: aws, gcp
Mkit
MKIT is a Managed Kubernetes Inspection Tool that validates several common security-related configuration settings of managed Kubernetes cluster objects and the workloads/resources running inside the cluster.
Stars: ✭ 330 (-13.61%)
Mutual labels: aws, gcp
Hot sync two Redis databases using dumps.
Why
There's no easy way to sync data from an AWS ElastiCache or GCP MemoryStore Redis cluster; the standard commands BGSAVE
and SLAVEOF
are blocked.
Rump is able to live sync Redis databases across cloud providers by only using SCAN
, DUMP
and RESTORE
.
It's used at Sticker Mule to keep staging and development environments in sync with the production AWS/GCP Redis clusters.
Examples
# Sync local Redis DB 1 to DB 2.
$ rump -from redis://127.0.0.1:6379/1 -to redis://127.0.0.1:6379/2
# Sync ElastiCache cluster to local.
$ rump -from redis://production.cache.amazonaws.com:6379/1 -to redis://127.0.0.1:6379/1
# Sync protected ElastiCache via EC2 port forwarding.
$ ssh -L 6969:production.cache.amazonaws.com:6379 -N [email protected] &
$ rump -from redis://127.0.0.1:6969/1 -to redis://127.0.0.1:6379/1
# Dump GCP MemoryStore to file.
$ rump -from redis://10.0.20.2:6379/1 -to /backup/memorystore.rump
# Restore backup to ElastiCache.
$ rump -from /backup/memorystore.rump -to redis://production.cache.amazonaws.com:6379/1
# Sync with verbose mode disabled.
$ rump -from redis://127.0.0.1:6379/1 -to redis://127.0.0.1:6379/2 -silent
# Sync with TTLs.
$ rump -from redis://127.0.0.1:6379/1 -to redis://127.0.0.1:6379/2 -ttl
Features
- Uses
SCAN
instead ofKEYS
to avoid DoS servers. - Doesn't use any temp file.
- Can sync any key type.
- Can optionally sync TTLs.
- Uses buffered channels to optimize slow source servers.
- Uses implicit pipelining to minimize network roundtrips.
- Supports two-step sync: dump source to file, restore file to database.
- Supports Redis URIs with auth.
- Offers the same guarantees of the SCAN command.
Demo
Development
# requirements: docker, docker-compose (dc)
dc up # watch/run Rump tests and a Redis container
dc run --rm rump sh # get shell on Rump container
dc run --rm redis sh; redis-cli -h redis # get Redis console
Install
Binaries can be found on the releases page.
curl -SL https://github.com/stickermule/rump/releases/download/1.0.0/rump-1.0.0-linux-amd64 -o rump \
&& chmod +x rump;
./rump
You can run rump
in a container following the Dockerfile.example.
Mentions
- Sticker Mule Blog
- The Changelog
- Go Weekly
- DB Weekly
- Cron Weekly
- Hacker News
- Redis Weekly
Maintainers
Collaboration & License
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].