技术发展
分布式集群遇到的问题--session存在哪里?--NoSql数据库降低缓存压力
解决IO压力
特点
概述
NoSql-不仅仅是sql,泛指非关系型数据库
- 不遵循SQL标准
- 不支持ACID,不是不支持事务
- 远超于SQL的性能
应用场景
- 对数据高并发的读写,比如秒杀
- 海量数据的读写
- 对数据高扩展性的
- (总结:用不着SQL,用了SQL也解决不了问题的情况,考虑用NoSql)
不应用场景
- 需要事务的支持
- 基于SQL的结构化查询存储,处理复杂的关系,需要及时查询
常见的NoSql数据库
Memcache
- 很早出现的NoSql数据库
- 数据都存在内存中,一般不持久化
- 支持简单的key-value模式,支持类型单一
- 一般作为缓存数据库辅助持久化的数据库
Redis
- 几乎覆盖了Memcache的绝对部分功能
- 数据都在内存中,支持持久化,只要用作备份恢复
- 除了支持简单的key-value模式,还支持多种数据结构的存储,比如:list,set,hash,zset等
- 一般是作为缓存数据库辅助持久化数据库
MongoDB
- 高性能、开源、模式自由的文档型数据库
- 数据都在内存中,如果内存不足,把不常用的数据保存到硬盘
- 虽然是key-value模式,但是对value(尤其是JSON)提供了丰富的查询功能
- 支持二进制数据及大型对象
- 可以根据数据的特点代替RDBMS,成为独立的数据库,或者配合RDBMS,存储特定的数据