NoSql数据库简介

232 阅读1分钟

技术发展

分布式集群遇到的问题--session存在哪里?--NoSql数据库降低缓存压力

image.png

解决IO压力

image.png

特点

概述

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,存储特定的数据