























leebs · 2022 年 3 月 7 日 · 5228 次点击
这是一个创建于 1560 天前的主题,其中的信息可能已经有所发展或是发生改变。
假设 50w 数据,db 全量查询,再往 redis 里面塞,内存可能会爆。 db 分页查询,需要先 count ,是个耗时的操作,而且分批次插入,最终结果和数据库不一定一致(中间可能有其他删除修改的操作)。
比如布隆过滤器,一般是怎么导入亿级数据的?
1 hidemyself 2022 年 3 月 7 日cursor ? MySQL 和 PG 是可以的 |
2 wqhui 2022 年 3 月 7 日分批弄数据进去,导数据过程中发生修改的数据记录一下,这部分数据再刷一下 |
3 git00ll 2022 年 3 月 7 日你只能做到 redis 与 db 中的某个瞬间的数据是一致的,不可能保证恰好与导入完成时数据一致。考虑看业务上能否改。 |
4 wellsc 2022 年 3 月 7 日为什么要全量导入啊,增量不行吗?你确定所有数据是热数据? |
6 hopingtop 2022 年 3 月 7 日不严谨回答:如果是 mongodb 全量数据,可以考虑采用 mongodb 的内存引擎 你可以了解一下 |
9 ryanbuu 2022 年 3 月 7 日不一直问题可以用线上双写解决吧~ |
10 visitant 2022 年 3 月 7 日可以试试接 mongoDB 的 binlog ,然后写入 redis ,看你的业务能不能接受最终一致了 |
11 Mithril 2022 年 3 月 7 日确定一个时间点,比如当前时间,然后把所有 update time 在这之前的数据全拉出来塞到 redis 里。可以想办法跳过序列化和反序列化,直接塞进去。 |
12 bthulu 2022 年 3 月 8 日去掉 mongo, 全部采用 redis 就行了 |
22 fov6363 2022 年 3 月 9 日update_time 建索引,用 update_time 来导数据,只导 update_time > last_sync_time 的数据 |
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。