关于 MongoDB 和 Redis 的应用场景?

2016-04-06 14:12:53 +08:00
 miracleyao

最近在学 MongoDB 和 Redis ,我是做 Java 后台的,很好奇这两个 NoSQL 的应用场景有哪些?我能想到的一个场景就是当一个 Web 站点数据量很大时,关系数据库会遇到瓶颈,这些 NoSQL 会派上用场,比如 MongoDB,当然 Redis 可能主要是做缓存方面的,但是在一个项目中直接不使用关系数据库吗?还是会搭配着使用,希望有相关了解的人指导下。

5020 次点击
所在节点    问与答
4 条回复
dapang1221
2016-04-06 14:30:09 +08:00
我觉得当关系型数据库用起来明显感觉到痛苦时就要上 nosql 了,还有就是业务逻辑解耦。。一个简单的栗子就是你要存大量的键值对,用 MySQL 的话效率感人,就要把这块东西分离出来,用 redis 来实现。不用关系型数据库当然可以,得看具体是什么项目而已。。个人理解。
shirokuma
2016-04-06 15:51:18 +08:00
1.mongodb 的 schema-free 使用起来比 mysql 自由些.但因为没有事务需要应用自己实现
mongodb 支持副本集(replica)和分片(shard),Replica 可以将读压力分散到各个集群中,出了问题自动 failover,而 shard 可以将 IO,内存,CPU 等压力分散开来,适合用来存储单台机器无法存储的数据量.

2.redis 比较灵活些,但个人更偏爱使用 redis 作为缓存以及处理各种排行榜,排序来使用
shirokuma
2016-04-06 16:12:45 +08:00
补充一下:可以考虑两者采用混合使用.按经验来说,sql 和 nosql 是互补关系.
关联查询,统计,事务需要用到 sql 会轻松不少.
如果有比较多的 key-value 数据或者"灵活多变的"数据而且还蛮多的,就用 nosql 吧
xuwenmang
2016-04-06 17:23:14 +08:00
不喜欢关系数据库。

存的时候:把数据拆开,存;
取得时候:取;再把数据合并。

图啥啊。破 B 网站,直接用 txt 存。

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

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

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

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

© 2021 V2EX