const Redis = require('ioredis');
const r1 = new Redis({
port: 6379,
host: '192.168.1.1',
password: '123456',
db: 0,
keyPrefix: '',
});
r2 = new Redis({
port: 6379,
host: '192.168.1.2',
password: '123456',
db: 0,
keyPrefix: '',
});
(async () => {
let keys = await r1.keys('*');
for (key of keys) {
let key_type = await r1.type(key);
if (key_type == 'string') {
await r2.set(key, await r1.get(key));
}
else if (key_type == 'hash') {
await r2.hmset(key, await r1.hgetall(key));
}
else if (key_type == 'zset') {
let arr = await r1.zrange(key, 0, -1, 'WITHSCORES');
for (let i=0; i<arr.length; i=i+2) {
let score = arr[i] * 1;
let value = arr[i+1] * 1;
await r2.zadd(key, score, value);
}
}
else if (key_type == 'set') {
let arr = await r1.smembers(key);
for (let i of arr) {
await r2.sadd(key, i);
}
}
else {
console.log(key_type)
}
}
console.log('done');
})()