大家好,向大家请教一个问题。
我目前有海量数据:大概目前有 2 亿文本,文本长度在 1000 字符长度以下,并且数量在持续增长
一次给定 1000 个 key,如何在 30ms 内响应这 1000 条数据呢?
除了 redis 还有其他方案吗?诚心求教
1
superliy Apr 29
rocksdb 之前试过 1000qps 没问题
|
2
WilliamColton Apr 30 via Android
我也想学习一下
|
3
siaronwang Apr 30
duckdb
|
4
dode Apr 30
优先吞吐还是低延迟,请求数据是否完全随机,有没有热点,预先缓存,不用 redis 是因为内存不足?
|
5
flogyangs Apr 30
Bitalostored
|
6
luvcoriander OP @dode 优先低延迟,请求数据完全随机,可以理解为全量数据都是热点...不用 redis 确实是因为内存不足
|
7
luvcoriander OP @superliy 我们在测试 rocksdb 的方案,2000w 数据就已经慢到 200ms 了
|
8
superliy 3 days ago
@luvcoriander ssd ?
|
9
luvcoriander OP @superliy #8 是的
|
10
luvcoriander OP @superliy #8 主要给的 key 是随机的,缓存给了 50%数据总量吧。感觉还得靠内存解决速度问题
|
11
dode 2 days ago
假如这些数据都是一次写入是静态固化的,每次查找时预先把所有的 key 完成排序,批量查找,叠加配置 redis 固定内存限制,自动超时过期;叠加多块 ssd raid0 提高 IO 速度;
为数据进行分区;,将数据按 Hash Key 排序后,直接以二进制格式写入文件 建立一个 完全静态的索引文件(例如每个 Key 的 Offset )。 使用操作系统的 mmap 将文件映射进地址空间。 |