RedisShake
RedisShake copied to clipboard
内存占用和增量同步问题
- [ ] 请确保已经看过 wiki:https://github.com/alibaba/RedisShake/wiki
- [ ] 请确保已经学习过 Markdown 语法,良好的排版有助于维护人员了解你的问题
- [ ] 请在此提供足够的信息供社区维护人员排查问题
- [ ] 请在提交 issue 前删除此模板中多余的文字,包括这几句话
问题描述 1、shake同步时是否会大量占用内存?比如源库大小100G,大key10G,这种场景同步的时候内存占用的情况如何?是边读边写,内存占用的量<库的大小,还是整体备份完,一次性加载内存进行同步? 2、使用redis-shake的sync模式同步,在全量同步完成后(出现send RDB Finished),客户端未断开,继续往源库中写入键值对,目标端未有新的键值对同步过来
源端 Redis 版本:版本号,自建还是云厂商? redis 4.0 自建(单节点,部署在ecs上)
目的端 Redis 版本:redis 6.2 自建(在容器化的redis集群上,部署在k8s集群上)
sync.toml如下 type = "sync"
[source] version = 4.0 # redis version, such as 2.8, 4.0, 5.0, 6.0, 6.2, 7.0, ... address = "10.69.3.89:10731" username = "" # keep empty if not using ACL password = "xxx" # keep empty if no authentication is required tls = false elasticache_psync = "" # using when source is ElastiCache. ref: https://github.com/alibaba/RedisShake/issues/373
[target] type = "cluster" # "standalone" or "cluster" version = 6.2 # redis version, such as 2.8, 4.0, 5.0, 6.0, 6.2, 7.0, ... address = "10.71.68.46:6379" username = "" # keep empty if not using ACL password = "xxx" # keep empty if no authentication is required tls = false
此外,咱们有没有答疑的群,想要学习下
- 内存占用取决于大 key 的大小,与原库大小无关。 大key < shake << 源库
- 提供 shake 日志帮你看下
@yhxjack 现在不提供答疑的群,统一在 issue 沟通。
- 内存占用取决于大 key 的大小,与原库大小无关。 大key < shake << 源库
- 提供 shake 日志帮你看下
第二个是因为源集群是单节点,目标集群是3台节点的集群模式,同步过来之后,分片是不均的,前两个约是总数的1/6,最后一个节点有2/3的数据,这种情况是合理的吗?
@yhxjack 这是你们数据本身分布不均匀,请研究下数据是如何在 Redis 集群中分布的。