首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

上百亿个键值对使用什么数据库好?

  •  
  •   blackcurrant · 97 天前 · 3736 次点击
    这是一个创建于 97 天前的主题,其中的信息可能已经有所发展或是发生改变。
    键和值都是不超过 70 个字符的字符串。读的速度要求不大,写的速度需要非常快,最好还能节省空间。
    什么数据库合适呢?
    38 回复  |  直到 2019-04-18 19:06:16 +08:00
        1
    liuzhen   97 天前
    弄上百个普通的 kv 库

    根据键的 hash 值或者其他策略决定放在哪个库?
        2
    misaka19000   97 天前 via Android
    redis
        3
    lhx2008   97 天前
    内存够的话,redis cluster
        4
    blackcurrant   97 天前
    @misaka19000 需要数据完全写在硬盘上,因为没有这么多的内存。
        5
    yidinghe   97 天前 via Android
    100 亿条 140 字节记录本身 1300GB 左右,你说的速度快是需要每秒写入多少 GB 呢?
        6
    cshlxm   97 天前
    redis 集群啊
        7
    feiyuanqiu   97 天前 via Android
    hbase
        8
    leeg810312   97 天前 via Android
    LevelDB RocksDB
        9
    sufaith   97 天前
    redis
        10
    blackcurrant   97 天前
    @yidinghe 起码要比 mysql 的写入速度快才行。
        11
    9hills   97 天前 via iPhone
    Redis 用到你的需求不合适

    写多读少,单机版建议用 LevelDB
    分布式可以试试 Cassandra
        12
    zycpp   97 天前 via iPhone
    leveldb +1
    虽然没弄过这么大的…,我目前数据在亿级别,没啥问题
        13
    liujie333333   97 天前
    试试 Cassandra?
        14
    reus   97 天前
    唯一选择就是 rocksdb,不少关系数据库都用它做后端
        15
    reus   97 天前
    不要用 leveldb,一个几年了的严重问题,最近才修复。同样的问题,rocksdb 早修复了。
        16
    wangxiyu191   97 天前
    要优化写的话,找个用 LSM-Tree 的就好。单机 Rocksdb,集群的话一堆了 Tair-LDB Cassandra Scylla TiKV 等等……
        17
    zhanwh9   97 天前 via Android
    hbase 感觉比较合适
        18
    geeti   97 天前
    没人推荐 dynamodb?
        19
    petelin   97 天前 via iPhone
    @geeti 推荐 dynamodb 不是开源项目懂得人少
        20
    haohappy   97 天前
    MongoDB 不行么
        21
    wbrobot   97 天前
    信得过豆瓣的话,beansdb
        22
    dremy   97 天前 via iPhone   ♥ 1
    YY 的面试题吧,要真有这么大的数据量,还会连个数据库都选不定?
        23
    qianji201712   97 天前
    Instagram 有一篇介绍 Redis 的 Key 存储的文章,写得很详细,可以参考一下:

    https://instagram-engineering.com/storing-hundreds-of-millions-of-simple-key-value-pairs-in-redis-1091ae80f74c

    中文翻译: https://www.cnblogs.com/ajianbeyourself/p/4475172.html 不知道翻译是否准确,看英文最好
        24
    kex0916   97 天前
    hbase
        25
    qq976739120   97 天前
    目测又是哪个面试题
        26
    joesonw   97 天前
    TiKV?
        27
    gouchaoer   97 天前 via Android
    mysql 用 tokudb 引擎啥的?组个 8T 硬盘的 raid 足够存数据了。。。别的分布式方案运维挺麻烦的,用云服务又很贵
        28
    zorui   97 天前
    etcd
        29
    yuankui   97 天前
    HBase,go go go
        30
    abcbuzhiming   97 天前
    这种级别的数据必须考虑是写多还是读多的问题了,楼主你的场景是什么,是写多还是读多?
        31
    yanaraika   97 天前
    9 成 9 是面试题……实际中性能最高最简单的做法就是买台几百 G 内存的机子+压缩下元素+LSM Tree。不折腾多机
        32
    yanaraika   97 天前
    sap hana 解决 99%的数据问题
        33
    blueskea   97 天前 via Android
    hbase
        34
    txy3000   97 天前
    要求写快 可以上分布式的内存数据库 zookeeper + redis + codis 可扩展 可容灾 可随机读取 丰富的数据结构 还可以异步持久化
    如果读确实很少 且一致性要求不高 也可以用 Kafka 做个消息层 把写的消息存起来 后端接个 disk 的数据库 慢慢处理写就行了
        35
    blless   97 天前 via Android
    问就是分片,redis 或者自己 hash 分都一样
        36
    luozic   97 天前
    有錢沒? 有錢 隨便;沒錢自己上 redis/postgresql
        37
    hoythan   97 天前
    推荐 redis 都是认真的吗,没有读的需求,只要写呀。
        38
    tenyears102   96 天前
    pika
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3883 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 08:55 · PVG 16:55 · LAX 01:55 · JFK 04:55
    ♥ Do have faith in what you're doing.