How do I move a redis database from one server to another?

前端 未结 12 1095
耶瑟儿~
耶瑟儿~ 2020-12-12 09:27

I currently have a live redis server running on a cloud instance and I want to migrate this redis server to a new cloud instance and use that instance as my new redis server

12条回答
  •  春和景丽
    2020-12-12 10:24

    Key elements of a zero-downtime migration is:

    • replication (http://redis.io/commands/SLAVEOF)
    • possibility to write into a slave during application switching (CONFIG SET slave-read-only no)

    In short:

    1. setup a target redis (empty) as slave of a source redis (with your data)
    2. wait for replication finish
    3. permit writes to a target redis (which is currently slave)
    4. switch your apps to a target redis
    5. wait for finish datastream from master to slave
    6. turn a target redis from master to slave

    Additionally redis have options which allows to disable a source redis to accept writes right after detaching a target:

    • min-slaves-to-write
    • min-slaves-max-lag

    This topic covered by

    • http://redis.io/topics/admin#upgrading-or-restarting-a-redis-instance-without-downtime

    Very good explanation from RedisLabs team https://redislabs.com/blog/real-time-synchronization-tool-for-redis-migration (use web.archive.org)

    And even their interactive tool for migrate: https://github.com/RedisLabs/redis-migrate

提交回复
热议问题