1.NoSQL数据库

2022-3-5 Redis

负载均衡场景

解决session问题?

方案:

  1. 存在客户端cookie;可能会存在安全问题
  2. 每个服务器都进行session复制;session一样,会浪费资源
  3. 使用NoSQL数据库,存在内存中,读写速度快

NoSQL数据库

NoSQL数据库,泛指非关系型数据库

以简单的key-value模式存储

  1. 不遵循SQL标准
  2. 不支持ACID
  3. 远超于SQL的性能

适用场景

  1. 对数据高并发的读写
  2. 海量数据的读写
  3. 对数据高可扩展性的

不适用的场景

  1. 需要事务支持

  2. 基于sql的结构化查询存储,处理复杂的关系,需要即席查

==用不着sql的和用了sql也不行的情况,请考虑用NoSql==

常用的NoSQL数据库

  1. Memcached 很早出现的NoSQL数据库 数据都在内存中,一般不持久化

    支持简单的key-value模式,支持类型单一

    一般是作为缓存数据库辅助持久化的数据库

  2. Redis

    几乎覆盖了Memcached的绝大部分功能

    数据都存在内存中,支持持久化,主要用做备份恢复

    除了支持简单的key-value模式,还支持多种数据结构的存储,比如list、set、hash、zset

    一般是作为缓存数据库辅助持久化的数据库

  3. MongoDB

    高性能、开源、模式自由的文档型数据库

    数据都存在内存中,如果内存不足,会把不常用的数据存到硬盘中

    虽然是key-value 模式,但是对value(尤其是json)提供了丰富的查询功能

    支持二进制数据及大型对象

    可以根据数据的特点代替RDBMS,成为独立的数据库,或者配合RDBMS,存储特定的数据