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

Redis 可以独立存储数据吗?

  •  
  •   mlxy123123 · 2021-08-03 17:14:14 +08:00 · 4099 次点击
    这是一个创建于 1244 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一直对 Redis 里存储的数据没有安全感,所以一直都把 Redis 的部分设计成可以随时清空,配合项目中的恢复机制把被清除的数据恢复到 Redis 中

    你们会拿 Redis 当可靠的存储空间用吗?默认 Redis 中的数据是不会丢失的,就像其他的磁盘数据库一样

    21 条回复    2021-08-04 10:38:38 +08:00
    tcfenix
        1
    tcfenix  
       2021-08-03 17:17:45 +08:00
    现在云服务商基本都有"云 redis"类似名字的东西, 这些东西本质是支持 redis 协议, 支持冷热备, 冷数据下沉, 热数据刷到内存, 保证数据持久化安全的一整套东西

    不知道你现在用的是什么部署方案, 不过如果你选择相信这一类 redis 的话, 你的代码逻辑能简单不少的....
    RRRoger
        2
    RRRoger  
       2021-08-03 17:24:40 +08:00
    既想快,又想做持久化。。。。规避风险,还是用 mongdb 吧
    mlxy123123
        3
    mlxy123123  
    OP
       2021-08-03 17:25:02 +08:00
    @tcfenix 我问这个问题确实是因为受到了主贴想法的困扰,在想如果相信 Redis,很多事情就可以做得很简单
    liprais
        4
    liprais  
       2021-08-03 17:47:28 +08:00   ❤️ 2
    没有 wal log 的 data store 都是确定不能保证数据安全的
    libook
        5
    libook  
       2021-08-03 17:58:03 +08:00
    Redis 支持持久化,RDB 和 AOF 两种模式,一般来说 AOF 可靠一些,但即便如此,仍会有极短的时间内的数据是未持久化的,看你具体项目对丢失数据的容忍程度。

    另外貌似 Intel 的傲腾貌似有 Redis 的相关方案。

    其实也要看你对 Redis 的需求是什么,如果是要高速读但对写速度要求不高的话,你原有方案就可以;如果对高速写有需求的话,可能就只能堆 IO 写速率了。

    Redis 还支持集群,一台机器挂了还有其他机器可以正常使用,分布式一致性策略也可以保证数据不丢失。
    thet
        6
    thet  
       2021-08-03 18:10:28 +08:00 via iPhone
    配置好 aof,最多 1-2 秒数据未持久化
    Jooooooooo
        7
    Jooooooooo  
       2021-08-03 18:38:04 +08:00
    最好是只把 redis 当缓存用.
    newmlp
        8
    newmlp  
       2021-08-03 19:04:11 +08:00
    最好当缓存用,缓存本来就是可丢失的
    RichardYyf
        9
    RichardYyf  
       2021-08-03 21:08:31 +08:00   ❤️ 1
    你需要的应该是那种基于 rocksDB 改造兼容 redis 协议的 k-v 存储吧,像各大云厂商都有自己类似的产品,比如阿里云的 tair,华为云的 gauss db,开源的也有,美图的 kvrocks,360 的 pika
    clickhouse
        10
    clickhouse  
       2021-08-03 21:44:37 +08:00
    同 #5,redis 本身就支持持久化存储数据到硬盘,也可以选择采用主从的方式进行灾备。不过还是推荐只用 redis 做缓存。
    MOONLIGHTT
        11
    MOONLIGHTT  
       2021-08-03 23:56:52 +08:00
    @RichardYyf KV 数据库是 KV 数据库,缓存是缓存,redis 在设计相关结构的时候完全没有考虑磁盘读写效率的问题,而 rocksdb 或者 innodb 则在设计之初就需要考虑磁盘的性能。
    ecnelises
        12
    ecnelises  
       2021-08-04 00:01:59 +08:00
    真有人这样干
    wenzichel
        13
    wenzichel  
       2021-08-04 00:09:46 +08:00
    redis 可以做持久化存储这件事儿,但最好别这样做。
    lscho
        14
    lscho  
       2021-08-04 00:37:27 +08:00
    你的想法是对的,redis 的数据本来就是不可靠的,当作缓存用就行。

    在开发中,默认都是 redis 数据会丢失的。开发的时候要考虑这种情况。
    akira
        15
    akira  
       2021-08-04 01:04:43 +08:00
    可以是可以,但是有句话,你能搞得定的才是可以
    jswh
        16
    jswh  
       2021-08-04 06:11:20 +08:00
    kuangwinnie
        17
    kuangwinnie  
       2021-08-04 07:50:49 +08:00
    我之前在某大公司实习的时候,用的就是 redis cluster 来当 ram 存储的,没做持久化。
    yidinghe
        18
    yidinghe  
       2021-08-04 08:05:06 +08:00 via Android
    虽然 Redis 有持久化机制,但用来存储大量数据时内存消耗很大。所以想要有个省内存的 kV 数据库的话,ssdb 不错。
    opengps
        19
    opengps  
       2021-08-04 08:09:15 +08:00
    redis 已经具备了持久化支持能力,所以也不是不可以
    将缓存设计成随时可以丢失重建的思路并没有什么不妥
    wzw
        20
    wzw  
       2021-08-04 09:34:44 +08:00 via iPhone
    Pika 数据库呀,360 出品
    ch2
        21
    ch2  
       2021-08-04 10:38:38 +08:00
    aof+定期备份 aof 文件就是了
    你不放心就自己另开一个 redis 然后用你备份的 aof 初始化它,看看数据能不能恢复出来
    试过就知道是很可靠的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   904 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 20:01 · PVG 04:01 · LAX 12:01 · JFK 15:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.