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

一直有一个好奇,如果网站用 redis 作为唯一的数据库,会怎样?

  •  
  •   zzzmh · 15 天前 · 4489 次点击

    其实我心里大概是有一个答案的,就是怕断电丢 5 分钟左右的数据?
    如果不考虑断电的情况呢,因为阿里云腾讯云我用了好多年都没遇到过断电,而且就丢失 5 分钟,概率上还没有中勒索病毒大。
    其他的我暂时也想不到什么坏处,顶多是逻辑要自己写,大表拆分起来要动动脑。
    好处不用说了,速度起飞,内存占用低。
    所以还是想请教一下各位大佬,到底有没有可行性

    39 条回复    2020-06-29 14:19:06 +08:00
    kiracyan
        1
    kiracyan   15 天前
    本来就可以这样做 只不过看你能承担的风险是多少而已
    Jooooooooo
        2
    Jooooooooo   15 天前
    运维过好几 T 的 redis 集群?
    monsterxx03
        3
    monsterxx03   15 天前 via Android
    你的数据库大小不能超过机器内存喽,开了 aof 也就丢一秒,还有 redis 那个事务不堪用
    pastgift
        4
    pastgift   15 天前 via iPhone
    怎么会内存占用低呢? redis 的内存也是内存呀
    比如正常 mysql 里存了 10 个 G 数据,换 redis 岂不是要 10 个 G 内存?
    你真的只考虑数据全内存里读写,sqlite 放内存,或者 mysql 内存表,加个定时刷到硬盘不就行了
    takemeaway
        5
    takemeaway   15 天前
    哪来的丢 5 分钟? 可以不丢的。 就是看你内存够不够。
    luckyrayyy
        6
    luckyrayyy   15 天前
    不光断电,硬件坏掉的问题?进程挂掉?系统意外死了?另外备份也不是五分钟吧,你完全可以调更低。要是丢数据对你来说完全不重要,那当然只用 redis
    GM
        7
    GM   15 天前
    看你是用来干嘛的了,个人网站随意。
    公司正式用途的,别瞎想。
    vivipure
        8
    vivipure   15 天前   ❤️ 2
    数据库只是一种方式,你用个 json 或者 txt 文件存数据也没问题啊,只是效率问题。
    lshero
        9
    lshero   15 天前
    对运维的要求挺高的,之前的公司大部分项目就是 Redis
    所有的 Redis 实例每一次存取都有监控
    阻塞操作热点 key 之类的问题过一会儿就可以反馈给业务部门
    DBA 对 RDB 文件解析恢复使用的贼溜
    xuanbg
        10
    xuanbg   15 天前
    楼主说的速度起飞,大概就是 30 毫秒的响应时间变成 3 毫秒。这点提升其实体验并没有那么明细,所以根本不重要。
    realpg
        11
    realpg   15 天前
    会很爽
    技术实力不够,就会很酸爽
    zzzmh
        12
    zzzmh   15 天前
    多谢回答,了解了,先开个虚拟机试试水好了。redis 一直也就作为缓存在用,之前没有足够的深入了解。
    defunct9
        13
    defunct9   15 天前 via iPhone
    @lshero 请教怎么监控每次存取的,还有阻塞热点 key 怎么监控
    est
        14
    est   15 天前   ❤️ 3
    redis 自己的官网和博客就是跑在一个纯 redis 上的。所以呢

    /t/652191
    /t/652220
    /t/652232
    /t/652217
    liuguang
        15
    liuguang   15 天前
    小数据量可以用用,海量数据的时候内存限制了
    swulling
        16
    swulling   15 天前 via iPhone
    redis 主从配好 断电也只损失同步延迟内的数据
    lshero
        17
    lshero   15 天前
    @defunct9 自己搞了个代理呗,把分片监控的问题都解决了,然而代理的可用性又是下一个问题了。
    不过业务都允许用 RDB 恢复数据了代理的高可用性也没有这么重要了。
    jifengg
        18
    jifengg   15 天前
    redis 不是“关系型”数据库,所以有“关系型”的业务的时候,只用 redis 来存数据读数据,不管是开发还是运行其实都不是很好。开发就不用说了,可能需要在存的时候就存很多对应关系。读的时候,需要读好几次才能读完你要的数据。所以,还是看具体需求了。
    没有什么“关系型”业务的,很适合,比如上面说的博客。
    像一般的什么管理系统,就不太适合。
    yinjunjian0
        19
    yinjunjian0   15 天前
    脱离场景没什么好讨论的吧
    DreamH
        20
    DreamH   15 天前
    陌陌一直都是用 redis 当数据库,主要是操作方便,抗量简单
    wysnylc
        21
    wysnylc   15 天前
    @est #13 连 redis 官网都能因为 redis 宕机而整体宕机,生产环境你宕机 5 分钟试试?
    arloor
        22
    arloor   15 天前 via Android
    nodebb
    ClarkAbe
        23
    ClarkAbe   15 天前 via iPhone
    之前用 Golang 嵌入式纯 kv 数据库写了个漫画网站....从推荐到分类,用户模块到记录每一次访问者信息都 ok......不过推荐那些最好别即时....而且查找什么的由于对算法实在头疼也没什么算法就是把数据分(数据总数 /5-10)份然后每一份一个 goroutine 暴力遍历因为用的是 json 的原因所以要转 map 不过我在转 map 前先让他匹配一下是否包含要查找的 value 所以速度超快......当然数据量到 n 亿条了就........

    就是架构挺麻烦.....一共搞了 10 个架构然后一个个实现再一个个测试性能大概用了一个季度......写完差不多就半年过后了
    ClarkAbe
        24
    ClarkAbe   15 天前 via iPhone
    跑起来后日活 ip 2000 左右,内存占用 130M-300M 左右根据 goroutine 的数量变化

    vultr 最低配鸡稳定跑到现在还跑着
    emanci
        25
    emanci   15 天前
    会这样?当然是费钱了。
    dobelee
        26
    dobelee   15 天前 via iPhone
    存储成本剧增,不方便复杂查询,维护成本高。别的跟数据库一样。
    LukeChien
        27
    LukeChien   15 天前 via Android
    ssdb 可以试试
    qwerthhusn
        28
    qwerthhusn   14 天前
    这得看是什么网站
    murmur
        29
    murmur   14 天前
    不需要持久化么? redis 的持久化跟传统 mysql 这些比呢
    liaokylin2v
        30
    liaokylin2v   14 天前 via Android
    应用场景合理就可以,有啥问题
    pmispig
        31
    pmispig   14 天前
    你不如把 mysql 的表文件放到内存,自己写个内存文件系统定时 sync 到磁盘
    wangyzj
        32
    wangyzj   14 天前
    内存贵
    Nicoco
        33
    Nicoco   14 天前
    CSDN 曾经搞过去 SQL 化,全站上 xml 的。

    结果呢?
    lihongming
        34
    lihongming   14 天前 via iPhone
    别被复杂查询吓到,即使是 amazon,也只有百分之十几的查询是关系型查询,其他都可以用 nosql 。

    为了这百分之十几的查询而降低那百分之八十多查询的效率不值,所以 amazon 转向了 dynamodb

    至于复杂的那一小部分,用程序拼凑就好。
    lithbitren
        35
    lithbitren   14 天前
    在知乎上看到好像有公司是真的堆 redis 做数据存储的,就是太费钱,不过老板喜欢,其他暂时没有太严重的问题。
    不过也就看过这么一例,也不知道是不是编的,网上绝大多数碰到这个问题的都是劝退,也几乎没人敢尝试放在业务上。
    594duck
        36
    594duck   14 天前   ❤️ 1
    丁香园的 CTO feng 大用 redis 做底层,结果事后大家都知道了。


    不要老想搞个大新闻 ,什么 IOT 替代计划。真的商业数据库能力甩 MYSQL 一百条马路,除了穷没有不用的道理。而至于 Redis,他只是个 KV,KV 就只干 KV 的活,任何的想象都是犯罪。
    P0P
        37
    P0P   14 天前
    要是想用简单的关系型数据库的话,sqlite 也是不错的,可以运行在纯内存模式或者基于文件模式, pv 不高的话很好用
    heiheidewo
        38
    heiheidewo   14 天前
    kv 一把梭哈(可以用 leveldb 省内存),关系数据全部读到内存处理
    zzzmh
        39
    zzzmh   14 天前
    @heiheidewo 刚了解了一下 leveldb,好东西适合我的项目,正在入门了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3127 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:26 · PVG 19:26 · LAX 04:26 · JFK 07:26
    ♥ Do have faith in what you're doing.