V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
luvcoriander
V2EX  ›  数据库

海量数据访问

  •  
  •   luvcoriander · Apr 29 · 894 views

    大家好,向大家请教一个问题。

    我目前有海量数据:大概目前有 2 亿文本,文本长度在 1000 字符长度以下,并且数量在持续增长

    一次给定 1000 个 key,如何在 30ms 内响应这 1000 条数据呢?

    除了 redis 还有其他方案吗?诚心求教

    11 replies    2026-05-07 09:01:27 +08:00
    superliy
        1
    superliy  
       Apr 29
    rocksdb 之前试过 1000qps 没问题
    WilliamColton
        2
    WilliamColton  
       Apr 30 via Android
    我也想学习一下
    siaronwang
        3
    siaronwang  
       Apr 30
    duckdb
    dode
        4
    dode  
       Apr 30
    优先吞吐还是低延迟,请求数据是否完全随机,有没有热点,预先缓存,不用 redis 是因为内存不足?
    flogyangs
        5
    flogyangs  
       Apr 30
    Bitalostored
    luvcoriander
        6
    luvcoriander  
    OP
       3 days ago
    @dode 优先低延迟,请求数据完全随机,可以理解为全量数据都是热点...不用 redis 确实是因为内存不足
    luvcoriander
        7
    luvcoriander  
    OP
       3 days ago
    @superliy 我们在测试 rocksdb 的方案,2000w 数据就已经慢到 200ms 了
    superliy
        8
    superliy  
       3 days ago
    @luvcoriander ssd ?
    luvcoriander
        9
    luvcoriander  
    OP
       3 days ago
    @superliy #8 是的
    luvcoriander
        10
    luvcoriander  
    OP
       3 days ago
    @superliy #8 主要给的 key 是随机的,缓存给了 50%数据总量吧。感觉还得靠内存解决速度问题
    dode
        11
    dode  
       2 days ago
    假如这些数据都是一次写入是静态固化的,每次查找时预先把所有的 key 完成排序,批量查找,叠加配置 redis 固定内存限制,自动超时过期;叠加多块 ssd raid0 提高 IO 速度;
    为数据进行分区;,将数据按 Hash Key 排序后,直接以二进制格式写入文件
    建立一个 完全静态的索引文件(例如每个 Key 的 Offset )。
    使用操作系统的 mmap 将文件映射进地址空间。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   944 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 19:44 · PVG 03:44 · LAX 12:44 · JFK 15:44
    ♥ Do have faith in what you're doing.