例如到达1k个请求的时候把数据从node的从内存中存入关系型数据库。
数据一致性不要求,最终存入关系数据库就行了。
都是存内存里,不知道有没有什么区别。
各自有什么优缺点?
nosql数据库也是区分使用方式,例如
memcache/redis是用于缓存,大部分情况下只落到内存,数据不会在磁盘上存储,所有查询都在内存完成(当然redis也有将数据落到磁盘的模式)
mongodb是所有数据都会落盘,内存部分只是为了加快查询速度,起缓存作用
至于为什么使用nosql数据库,这得分很多场景,我这边只说下问题中说的数据缓存场景
使用内存做缓存适用于比较简单的工程项目,例如 单机单进程、访问量不大、不考虑分布式、缓存策略不复杂 等等,这种情况下不引入外部依赖反而能减少运维上的负担
但是一旦工程项目需要更健壮或者需要分布式部署之类,redis这类nosql缓存服务就发挥作用了,能提供以下几点便利:
应用进程(例如nodejs)重启缓存数据不丢
可以很方便设置缓存的生效时间(当然在node里用定时器实现也可以,只是要重新造轮子)
轻松实现多机多进程之间共享缓存数据(例如:请求A发送到进程a中触发了缓存,当后面同样的请求A再发送到进程b时进程可以直接利用进程a写入的缓存)
官方帮助文档地址:阿里云帮助中心
更多参考: 阿里云官网(新用户需注册查看),可领上云红包
nosql数据库也是区分使用方式,例如
至于为什么使用nosql数据库,这得分很多场景,我这边只说下问题中说的数据缓存场景
使用内存做缓存适用于比较简单的工程项目,例如 单机单进程、访问量不大、不考虑分布式、缓存策略不复杂 等等,这种情况下不引入外部依赖反而能减少运维上的负担
但是一旦工程项目需要更健壮或者需要分布式部署之类,redis这类nosql缓存服务就发挥作用了,能提供以下几点便利:
node进程有内存限制,在1-2G之间,数据大了是不能放进去的;
nosql有它的用处,比如像memcached可以用做缓存,
redis可以利用它较为复杂的数据结构
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。