Redis 中的数据需不需要持久化到 DB 中? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tonghuashuai
V2EX    Redis

Redis 中的数据需不需要持久化到 DB 中?

  •  
  •   tonghuashuai
    tonghs 2015-08-31 12:10:54 +08:00 7825 次点击
    这是一个创建于 3761 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个例子:

    文章信息 id, title, content 存在 DB (例如 MySQL )中,文章的查看次数存在 redis 中(例如 有序集合,文章 id 作为 key ,查看次数作为 score ),然后定期 持久化到 dump 文件中。这是目前用法。

    然后呢,前几天看了一篇文章的做法是:
    在文章信息表中加一个查看次数字段(比如: view_count ),然后定期( crontab )同步 redis 中的查看次数到这个字段中。

    先问一下有没有必要这样呢?
    14 条回复    2015-09-01 06:02:05 +08:00
    wingoo
        1
    wingoo  
       2015-08-31 12:13:20 +08:00
    你觉得这个信息重不重要,
    大都是把 redis 当作 cache 使用, 既然是 cache, 就还需要其他的存储
    如果你把 redis 当作存储使用, 那就没关系
    oott123
        2
    oott123  
       2015-08-31 12:17:16 +08:00 via Android
    你不设置 TTL 然后用 redis 当数据库不就不用手动持久化了么…
    tshwangq
        3
    tshwangq  
       2015-08-31 12:41:56 +08:00
    你没多少量的话,全部放在 redis 中,把 redis 做数据库也挺好。速度快。
    太大量了,平衡 性价比在考虑是否要放到 mysql
    cnhongwei
        4
    cnhongwei  
       2015-08-31 12:44:38 +08:00
    redis 是数据库,不只是 cache 。不知道你看一个这文章的环境是怎么样的?不放心 redis ,怕丢数据?不放心运维,不能正常保证 redis 正常运行?还是想放到 sql 数据库中做数据分析?
    如果是前两种,那你怎么不担心 mysql ,还使用 redis 做什么?不放心还要放数据到 redis 。
    tigerstudent
        5
    tigerstudent  
       2015-08-31 12:46:31 +08:00 via Android
    楼上貌似都没看楼主的主题内容。。
    9hills
        6
    9hills  
       2015-08-31 13:16:22 +08:00 via iPhone
    有,容错更好,分析数据更方便
    cnhongwei
        7
    cnhongwei  
       2015-08-31 13:30:26 +08:00
    @tigerstudent 当然看了他的内容, redis 能持久化,为什么非要同步回 mysql ?而且集中同步对数据库压力也大,容易锁表。你要同步,总得有个理由或所谓的需求。我想没有人会说:因为我看了一个文章说脱了裤子放屁好,所以我也一定要脱了裤子放屁。当然可以也应在论坛上讨论一下到底好不好。

    最后的观点就是,根本没有必要。就算是分析数据,一般也会有分析数据库,同步到那里更好。
    chenwen
        8
    chenwen  
       2015-08-31 13:32:37 +08:00
    是我记错了么,我记得 redis 稍微配置下是可以持久化的吧
    ccbikai
        9
    ccbikai  
    PRO
       2015-08-31 13:42:23 +08:00
    原来公司的架构,直接把 MySQL 数据往 Redis 全部存了一份。。。
    hildert
        10
    hildert  
       2015-08-31 14:26:19 +08:00
    我个人观点:
    如果单纯为了数据备份,完全没必要。 redis 本身有持久化机制,写一个 crontab 定时备份数据文件就可以保证数据安全。
    如果是业务需要, MySQL 那边需要有一份,那就另当别论了。
    tigerstudent
        11
    tigerstudent  
       2015-08-31 14:39:10 +08:00 via Android
    @cnhongwei 嗯。。是我回复时还没看到你的回复……

    redis 自身是可以持久化的
    akira
        12
    akira  
       2015-08-31 14:53:22 +08:00
    看你怎么用 redis 了啊。如果你 redis 服务重启 /迁移的时候,不需要从数据库恢复数据,那当然不是必要了。
    不过,从长远的角度来说,还是在数据库里面保存一份比较好。所有的数据应当尽量可以从某一个点完整获得。
    Comdex
        13
    Comdex  
       2015-08-31 15:21:53 +08:00
    文章查看次数字段存在 redis 和存在 mysql 相比有什么好处?
    msg7086
        14
    msg7086  
       2015-09-01 06:02:05 +08:00
    写一个 crontab 定时备份数据文件才叫多此一举吧。

    mysql 好歹有权限控制, redis 的话你登录进去 flush 一下就呵呵了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3672 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 51ms UTC 00:50 PVG 08:50 LAX 16:50 JFK 19:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86