开发者社区> 问答> 正文

用node.js接受http请求,把数据缓存在node的栈里,可替代nosql数据库吗?

例如到达1k个请求的时候把数据从node的从内存中存入关系型数据库。
数据一致性不要求,最终存入关系数据库就行了。
都是存内存里,不知道有没有什么区别。
各自有什么优缺点?

展开
收起
落地花开啦 2016-02-28 10:00:35 4474 0
3 条回答
写回答
取消 提交回答
  • 最佳回答:

    nosql数据库也是区分使用方式,例如

    • memcache/redis是用于缓存,大部分情况下只落到内存,数据不会在磁盘上存储,所有查询都在内存完成(当然redis也有将数据落到磁盘的模式)

    • mongodb是所有数据都会落盘,内存部分只是为了加快查询速度,起缓存作用

    至于为什么使用nosql数据库,这得分很多场景,我这边只说下问题中说的数据缓存场景

    使用内存做缓存适用于比较简单的工程项目,例如 单机单进程、访问量不大、不考虑分布式、缓存策略不复杂 等等,这种情况下不引入外部依赖反而能减少运维上的负担

    但是一旦工程项目需要更健壮或者需要分布式部署之类,redis这类nosql缓存服务就发挥作用了,能提供以下几点便利:

    • 应用进程(例如nodejs)重启缓存数据不丢

    • 可以很方便设置缓存的生效时间(当然在node里用定时器实现也可以,只是要重新造轮子)

    • 轻松实现多机多进程之间共享缓存数据(例如:请求A发送到进程a中触发了缓存,当后面同样的请求A再发送到进程b时进程可以直接利用进程a写入的缓存)

    官方帮助文档地址:阿里云帮助中心

    更多参考: 阿里云官网(新用户需注册查看),可领上云红包

    2021-07-08 18:18:47
    赞同 展开评论 打赏
  • nosql数据库也是区分使用方式,例如

    • memcache/redis是用于缓存,大部分情况下只落到内存,数据不会在磁盘上存储,所有查询都在内存完成(当然redis也有将数据落到磁盘的模式)
    • mongodb是所有数据都会落盘,内存部分只是为了加快查询速度,起缓存作用

    至于为什么使用nosql数据库,这得分很多场景,我这边只说下问题中说的数据缓存场景

    使用内存做缓存适用于比较简单的工程项目,例如 单机单进程、访问量不大、不考虑分布式、缓存策略不复杂 等等,这种情况下不引入外部依赖反而能减少运维上的负担

    但是一旦工程项目需要更健壮或者需要分布式部署之类,redis这类nosql缓存服务就发挥作用了,能提供以下几点便利:

    • 应用进程(例如nodejs)重启缓存数据不丢
    • 可以很方便设置缓存的生效时间(当然在node里用定时器实现也可以,只是要重新造轮子)
    • 轻松实现多机多进程之间共享缓存数据(例如:请求A发送到进程a中触发了缓存,当后面同样的请求A再发送到进程b时进程可以直接利用进程a写入的缓存)
    2019-07-17 18:49:22
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    node进程有内存限制,在1-2G之间,数据大了是不能放进去的;
    nosql有它的用处,比如像memcached可以用做缓存,
    redis可以利用它较为复杂的数据结构

    2019-07-17 18:49:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
探究 Node.js 的服务端之路 立即下载
个推微服务实践 基于OpenResty 和Node.js 立即下载
沪江基于Node.js大规模应用实践 立即下载