如题,用了mongodb,还需要用redis吗?mongodb不是也有InMemory引擎吗?
如果把mongodb看作类似于mysql的只用作存储和一般查询用,那我为啥不直接用mysql?
我们的真实业务是,同时10w人在线,有5w的并发。
尽量将频繁访问的数据放到内存中和所有的数据都通过内存访问,这个差别还是比较大的,因为磁盘和内存访问速度相差好几个数量级,即使访问cache不命中率很低,带来的性能差异也会比较大,redis的延迟要低很多。而且在提供的功能上,redis提供的数据结构和MongoDB也是差别比较大的,需要根据应用的实际情况来选取
MongoDB自身的NoSQL特性,决定了其存储读取的性能都非常高。另外,非常非常重要的原因是,MongoDB具有灵活的扩展性,完善的Sharding机制。另外,5W并发的成功案例非常多。
redis具有复杂类型的数据结构,比如zset用于排序、list用于队列,另外全内存访问能够保证高速的访问,你这边可以根据自己的业务来选择redis和mongodb,每种引擎都有自己的适合场景,一个业务依赖多种数据库也是合理的。
自己顶一下,@yunnotes曾提到:“MongoDB 本身能做到尽量将频繁访问的数据 cache 在内存,本身就相当于做了冷热数据的区分;”,那还需要要在高并发的场景中引入redis吗?这决定到我们的架构,而且我们的mongo中的数据越来越多,还没做好历史数据的处理问题。麻烦大神给个建议。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。