自建Redis成本高怎么办

自建Redis成本高怎么办

自建Redis需要购买资源,并投入大量研发维护人力,且Redis内存利用率可能会存在浪费的情况,导致成本高。

自建Redis需要购买资源,并投入大量研发维护人力,且Redis内存利用率可能会存在浪费的情况,导致成本高。

分布式缓存Redis迁移常见问题

分布式缓存Redis迁移常见问题

  • 如何导出Redis实例数据?

    主备、集群和读写分离实例:

    主备、集群和读写分离实例支持备份功能,可以执行以下操作将数据导出:

    1、进入缓存管理页面,切换到“备份与恢复”页签,查看实例的备份记录。

    2、如没有记录,则手动执行备份动作,执行完后,单击“下载”,根据提示完成数据的下载操作。

    说明:如果您的实例创建时间非常早,由于实例版本没有升级而无法兼容备份恢复功能,请联系技术支持将缓存实例升级到最新版本,升级后就可以支持备份恢复功能。

    单机实例:

    单机实例不支持备份功能,用户可以通过Redis-cli客户端导出rdb文件,但是使用Redis-cli导出rdb文件依赖SYNC命令。

    放通了SYNC命令的单机实例(例如Redis 3.0单机实例,未禁用SYNC命令),可以通过执行以下命令,将单机实例上的数据导出:

    redis-cli -h {source_redis_address} -p 6379 [-a password] --rdb {output.rdb}

    禁用了SYNC命令的单机实例(例如Redis 4.0和Redis 5.0单机实例,禁用了SYNC命令),建议将单机实例的数据迁移到主备实例,然后使用主备实例的备份功能。


  • 迁移或导入备份数据时,相同的Key会被覆盖吗?

    在迁移或导入备份数据时,源端与目标端重复的数据会被覆盖;源端没有,目标端有的数据会保留。

    因此,如果在迁移后目标端与源端数据不一致,有可能是目标端在迁移前有未清除的数据。建议迁移实例前,将目标端实例数据清空。


  • 是否支持控制台导出RDB格式的Redis备份文件?

    Redis 3.0实例

    Redis 3.0是通过AOF文件持久化的,控制台仅支持备份和下载AOF文件,RDB格式文件可以通过Redis-cli导出:

    redis-cli -h {redis_address} -p 6379 [-a password] --rdb {output.rdb}

    Redis 4.0和Redis 5.0实例

    Redis 4.0/5.0实例支持选择AOF和RDB格式进行持久化,支持在控制台备份和下载AOF和RDB文件


  • Redis在线数据迁移是迁移整个实例数据么?

    如果是单机和主备实例之间进行迁移,是迁移实例所有的数据,不管存在哪个DB都会进行迁移,且数据所在的DB序号不会变;不支持单DB迁移。

    如果是集群实例,由于集群实例只有一个DB0节点,会迁移DB0上所有槽内的数据。


  • Redis迁移失败有哪些常见原因?

    在进行数据迁移时,如果Redis实例发生了主备倒换,可能会导致迁移失败。可联系技术支持,将主备倒换关闭,待迁移成功后,再开启主备倒换。

    如果是在线迁移,请确认源Redis实例,是否禁用了SYNC和PSYNC命令,如果禁用了,需要先开启,允许数据同步。

    如果是单机/主备实例迁移到Proxy集群实例,Proxy集群默认不开启多DB,仅有一个DB0,请先确保单机/主备实例DB0以外的DB是否有数据,如果有,请先参考开启多DB操作开启Proxy集群多DB设置

    如果是单机/主备实例迁移到Cluster集群实例,Cluster集群不支持多DB,仅有一个DB0,请先确保单机/主备实例DB0以外的DB是否有数据,如果有,请将数据转存到DB0,否则会出现迁移失败。


  • 一个数据迁移能迁移到多个目标实例么?

    不能。

    一个迁移任务只能迁移到一个目标实例。要迁移到多个目标实例需要创建多个迁移任务。