redis 本身有持久化,为什么还要写进 mysql 呢?

2015-09-10 09:34:10 +08:00
 chuanwu

redis 本身的持久化做得挺靠谱的,为什么还要多一个定时任务来写进 mysql?
如果是因为防止恶意攻击被 flush 的话, mysql 也不大可能会幸免啊。

33172 次点击
所在节点    Redis
62 条回复
broadliyn
2015-09-10 09:36:26 +08:00
思维固化吧。
总提心吊胆的觉得 mysql 才是持久之道, redis 只能做 cache
lovedboy
2015-09-10 09:39:02 +08:00
可能为了以后清 cache 吧。
snailsir
2015-09-10 09:43:57 +08:00
sefemp
2015-09-10 09:47:02 +08:00
感觉是不是为了某些特定的数据持久化?
bigbook
2015-09-10 09:53:03 +08:00
当然也可以不写入,写入的好处肯定更多,有时候会有各种需求还是基于 mysql 更方便
比如统计数据分析数据使用 mysql 更方便
kslr
2015-09-10 09:55:59 +08:00
思维固化+1 redis 的持久化还是很好用的。
struCoder
2015-09-10 09:57:49 +08:00
我觉得不是思维固化。。也有一定的原因,毕竟新浪那些工程师也不是不知道这些。坐等大侠前来解答
msxcms
2015-09-10 09:58:35 +08:00
数据安全不是有持久化就好的
wy315700
2015-09-10 10:03:52 +08:00
MySQL 在崩溃处理,数据恢复方面比 redis 要好,
Hakmor
2015-09-10 10:04:48 +08:00
redis 作为数据库查询功能太弱了。
sefemp
2015-09-10 10:05:05 +08:00
redis 可以针对某些特定的 key,或者 field 做持久化吗?
adjusted
2015-09-10 10:06:21 +08:00
我觉得是完全可以只用 redis 的,可能还是因为熟悉 mysql 的人比较多吧
looyao
2015-09-10 10:08:12 +08:00
SQL 查询还是要强大很多吧,简单分析需求可能一个 SQL 就搞定了。还有一种就是如果数据量多了, Redis 会吃满内存,内存爆掉会有丢数据的风险,这时序列化到 MySQL 就是一种解决方案,将一些冷数据从 Redis 转移到 MySQL ,降低 Redis 内存使用。
Redis 的确很强大,但是内存这块吃紧就不好玩了,国人 SSDB 在这块可能好些(题外话)。
socrates
2015-09-10 10:10:47 +08:00
定时任务写进 mysql 确实感觉很鸡肋啊,实时的异步写入觉得更有意义一些
zeayes
2015-09-10 10:12:30 +08:00
最重要就是 mysql 是 SQL 数据库, redis 重启后数据加载会耗时
shawngao
2015-09-10 10:15:22 +08:00
Redis 持久存储和内存占用是 1:1 的关系,体会下~
nightspirit
2015-09-10 10:19:22 +08:00
是一种冗余的安全机制么?
songco
2015-09-10 10:33:39 +08:00
还是要看具体的应用. 比如有人需要 redis 高速处理请求, 然后 sync 到 mysql 做一些 sql 查询.
Redis 的持久化有 rdb 和 append only file
RDB 定时(一般比较长..)刷到磁盘, 丢数据的风险比较大. 当然有些应用是可以忍受这种级别的丢数据的. RDB 加载很快.
Append only file 貌似每秒 fsync 一次, 没看过具体的代码, 不知道开启了对请求处理速度有没有影响. 这个也会丢数据, recover 速度比较慢. 不过大部分情况下开启 aof 就够用了. 除非有 sql 查询的需求.

以前我设计开发过一个 key-value DB, 丢数据 /性能权衡的问题非常麻烦...

上面的都是根据比较老的版本的, 新版本可能有更多的功能.
wingoo
2015-09-10 10:37:51 +08:00
kv 的数据可能和你的数据结构不相关
比如你计数, 在 redis 中就是一个 key 不停的累加
但在表里的一行数据, 这个计数就有了其他的属性
当你想做这个属性的统计时, mysql 比 kv 的要方便和直观的多了
wingoo
2015-09-10 10:40:27 +08:00
我们曾经做过一个项目, 广告数据
开始的版本全部存储在 memcached 里面, 当你想查些问题时, 非常烦, 你要一个一个的拼 key 去检查
后期的版本改成 log 文件, 结构化存储, 然后解析入库
好处是非常直观, 找什么数据, cat grep 一下就可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX