mlxy123123
V2EX  ›  Redis

Redis 可以独立存储数据吗?

  •  
  •   mlxy123123 · Aug 3, 2021 · 4877 views
    This topic created in 1830 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

    在开发中,默认都是 redis 数据会丢失的。开发的时候要考虑这种情况。
    akira
        15
    akira  
       Aug 4, 2021
    可以是可以,但是有句话,你能搞得定的才是可以
    jswh
        16
    jswh  
       Aug 4, 2021
    kuangwinnie
        17
    kuangwinnie  
       Aug 4, 2021
    我之前在某大公司实习的时候,用的就是 redis cluster 来当 ram 存储的,没做持久化。
    yidinghe
        18
    yidinghe  
    PRO
       Aug 4, 2021 via Android
    虽然 Redis 有持久化机制,但用来存储大量数据时内存消耗很大。所以想要有个省内存的 kV 数据库的话,ssdb 不错。
    opengps
        19
    opengps  
       Aug 4, 2021
    redis 已经具备了持久化支持能力,所以也不是不可以
    将缓存设计成随时可以丢失重建的思路并没有什么不妥
    wzw
        20
    wzw  
       Aug 4, 2021 via iPhone
    Pika 数据库呀,360 出品
    ch2
        21
    ch2  
       Aug 4, 2021
    aof+定期备份 aof 文件就是了
    你不放心就自己另开一个 redis 然后用你备份的 aof 初始化它,看看数据能不能恢复出来
    试过就知道是很可靠的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5039 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 09:23 · PVG 17:23 · LAX 02:23 · JFK 05:23
    ♥ Do have faith in what you're doing.