• 请不要在回答技术问题时复制粘贴 AI 生成的内容
blackcurrant
V2EX  ›  程序员

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

  •  
  •   blackcurrant · Apr 17, 2019 · 8324 views
    This topic created in 2766 days ago, the information mentioned may be changed or developed.
    键和值都是不超过 70 个字符的字符串。读的速度要求不大,写的速度需要非常快,最好还能节省空间。
    什么数据库合适呢?
    38 replies  •  2019-04-18 19:06:16 +08:00
    yuan93
    yuan93
    Apr 17, 2019
    1
    弄上百个普通的 kv 库

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

    写多读少,单机版建议用 LevelDB
    分布式可以试试 Cassandra
    zycpp
    zycpp
    Apr 18, 2019 via iPhone
    12
    leveldb +1
    虽然没弄过这么大的…,我目前数据在亿级别,没啥问题
    JimmyTinsley
    JimmyTinsley
    Apr 18, 2019
    13
    试试 Cassandra?
    reus
    reus
    Apr 18, 2019
    14
    唯一选择就是 rocksdb,不少关系数据库都用它做后端
    reus
    reus
    Apr 18, 2019
    15
    不要用 leveldb,一个几年了的严重问题,最近才修复。同样的问题,rocksdb 早修复了。
    wangxiyu191
    wangxiyu191
    Apr 18, 2019
    16
    要优化写的话,找个用 LSM-Tree 的就好。单机 Rocksdb,集群的话一堆了 Tair-LDB Cassandra Scylla TiKV 等等……
    zhanwh9
    zhanwh9
    Apr 18, 2019 via Android
    17
    hbase 感觉比较合适
    geeti
    geeti
    Apr 18, 2019
    18
    没人推荐 dynamodb?
    petelin
    petelin
    Apr 18, 2019 via iPhone
    19
    @geeti 推荐 dynamodb 不是开源项目懂得人少
    haohappy
    haohappy
    Apr 18, 2019
    20
    MongoDB 不行么
    wbrobot
    wbrobot
    Apr 18, 2019
    21
    信得过豆瓣的话,beansdb
    dremy
    dremy
    Apr 18, 2019 via iPhone❤️1
    22
    YY 的面试题吧,要真有这么大的数据量,还会连个数据库都选不定?
    qianji201712
    qianji201712
    Apr 18, 2019
    23
    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 不知道翻译是否准确,看英文最好
    kex0916
    kex0916
    Apr 18, 2019
    24
    hbase
    qq976739120
    qq976739120
    Apr 18, 2019
    25
    目测又是哪个面试题
    joesonw
    joesonw
    Apr 18, 2019
    26
    TiKV?
    gouchaoer
    gouchaoer
    Apr 18, 2019 via Android
    27
    mysql 用 tokudb 引擎啥的?组个 8T 硬盘的 raid 足够存数据了。。。别的分布式方案运维挺麻烦的,用云服务又很贵
    zorui
    zorui
    Apr 18, 2019
    28
    etcd
    yuankui
    yuankui
    Apr 18, 2019
    29
    HBase,go go go
    abcbuzhiming
    abcbuzhiming
    Apr 18, 2019
    30
    这种级别的数据必须考虑是写多还是读多的问题了,楼主你的场景是什么,是写多还是读多?
    yanaraika
    yanaraika
    Apr 18, 2019
    31
    9 成 9 是面试题……实际中性能最高最简单的做法就是买台几百 G 内存的机子+压缩下元素+LSM Tree。不折腾多机
    yanaraika
    yanaraika
    Apr 18, 2019
    32
    sap hana 解决 99%的数据问题
    blueskea
    blueskea
    Apr 18, 2019 via Android
    33
    hbase
    txy3000
    txy3000
    Apr 18, 2019
    34
    要求写快 可以上分布式的内存数据库 zookeeper + redis + codis 可扩展 可容灾 可随机读取 丰富的数据结构 还可以异步持久化
    如果读确实很少 且一致性要求不高 也可以用 Kafka 做个消息层 把写的消息存起来 后端接个 disk 的数据库 慢慢处理写就行了
    blless
    blless
    Apr 18, 2019 via Android
    35
    问就是分片,redis 或者自己 hash 分都一样
    luozic
    luozic
    Apr 18, 2019
    36
    有錢沒? 有錢 隨便;沒錢自己上 redis/postgresql
    hoythan
    hoythan
    PRO
    Apr 18, 2019
    37
    推荐 redis 都是认真的吗,没有读的需求,只要写呀。
    tenyears102
    tenyears102
    Apr 18, 2019
    38
    pika
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3113 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 112ms · UTC 00:51 · PVG 08:51 · LAX 16:51 · JFK 19:51
    ♥ Do have faith in what you're doing.