jkx1206
jkx1206
> 1. 请问 rmt 是什么工具? > 2. 试一下 3.x 版本的 shake 性能有较高提升 rmt是Redis-migrate-tool, 唯品会开源的单向同步工具,2.x版本不能提高速度吗,因为是准备线上用,担心3.x版本不够稳定
> @jkx1206 2.x 不做迭代了 那请问一下,3.x版本目前稳定性如何呢,线上做数据同步之类的工作
> @jkx1206 1. 性能能达到要求 2. 稳定性主要是版本兼容问题和用法问题,你们使用方式固定的话还好,有问题可以找我 好的,谢谢
> @jkx1206 1. 性能能达到要求 2. 稳定性主要是版本兼容问题和用法问题,你们使用方式固定的话还好,有问题可以找我 cluster_helper.py批量处理cluster,好像不支持lua脚本 @suxb201
用下面函数替换就行 import collections def flatten(x): result = [] for el in x: if isinstance(x, collections.Iterable) and not isinstance(el, str): result.extend(flatten(el)) else: result.append(el) return result
> 会有影响,会导致 shake 停止。 你好,想问一下,psync生成rdb文件时,如何保证生成rdb期间的写命令会同步呢,我看到这步执行时,aof文件还没有开始创建,那么命令是怎么同步的呢,通过REPLCONF ACK吗还是? @suxb201
> 期间的 aof 是缓存在源端 Redis 中的,可以先了解下 Redis 的主从复制原理,shake 一样的。 这个我看过的,我又想了下,应该是redisshake先建立主从连接,然后处理传输的rdb数据写入rdb文件,期间命令在redis缓存区。psynct发送完rdb之后,就会发送缓存的命令,shake会将命令写到aof文件中,sourc同步完rdb文件之后,就会去同步aof文件
`{ "address":"1.1.1.1:6379", "entry_id":5925556, "allow_entries_count":5925557, "disallow_entries_count":0, "is_doing_bgsave":false, "rdb_file_size":130362291, "rdb_received_size":130362291, "rdb_send_size":130362291, "aof_received_offset":7501310454, "aof_applied_offset":7501310454, "in_queue_entries_count":0, "unanswered_bytes_count":0, "scan_db_id":0, "scan_cursor":0, "msg":"syncing aof. allowOps=[21638.40], disallowOps=[0.00], entryId=[5925555], InQueueEntriesCount=[0], unansweredBytesCount=[0]bytes, diff=[0], aofReceivedOffset=[7501310440], aofAppliedOffset=[7501310440]" }` 在source还在接受命令的情况下,如何判断全量同步完成呢,rdb_file_size=rdb_send_size吗还是? @suxb201