当前位置:  开发笔记 > 后端 > 正文

用redis将所有密钥从一个db复制到另一个db

如何解决《用redis将所有密钥从一个db复制到另一个db》经验,为你挑选了1个好方法。

移动的机制我想将我的所有密钥从特定的数据库复制到另一个数据库.如果是,可以在redis中使用吗?



1> estani..:

如果由于您的redis版本而无法使用MIGRATE COPY,则可能需要单独复制每个密钥,这需要更长的时间,但不需要您登录到计算机本身,并允许您将数据从一个数据库移动到另一个数据库.这是我如何将所有键从一个数据库复制到另一个数据库(但不保留ttls)

#set connection data accordingly
source_host=localhost
source_port=6379
source_db=0
target_host=localhost
target_port=6379
target_db=1

#copy all keys without preserving ttl!
redis-cli -h $source_host -p $source_port -n $source_db keys \* | while read key; do echo "Copying $key"; redis-cli --raw -h $source_host -p $source_port -n $source_db DUMP "$key" | head -c -1|redis-cli -x -h $target_host -p $target_port -n $target_db RESTORE "$key" 0; done

密钥不会被覆盖,因为在复制之前删除密钥或在启动之前刷新整个数据库.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有