我不想移动,而是想将我的所有 key 从一个特定的数据库复制到另一个数据库。 如果是的话,在redis中有可能吗?
最佳答案
如果你不能使用MIGRATE COPY由于您的 redis 版本 (2.6),您可能希望单独复制每个 key ,这需要更长的时间,但不需要您登录到机器本身,并允许您将数据从一个数据库移动到另一个数据库。 这是我将所有 key 从一个数据库复制到另一个数据库的方法(但不保留 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
key 不会被覆盖,为此,在复制之前删除这些 key ,或者在开始之前简单地刷新整个目标数据库。
关于redis - 在redis中将所有键从一个数据库复制到另一个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222616/