目录
一、技术发展:
Web1.0时代:
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
编辑
Web2.0时代:
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
编辑
解决CPU及内存压力:
编辑
解决IO压力:
编辑
二、NoSQL数据库概述:
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
- 不遵循SQL标准。
- 不支持ACID(事务特性)
ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。
- 远超于SQL的性能。
NoSQL适用场景:
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
NoSQL不适用场景:
- 需要事务支持
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询。
- (用不着sql的和用了sql也不行的情况,请考虑用NoSql)
行列式存储数据库:
1.行式数据库:
编辑
2.列式数据库:
编辑
图关系型数据库:
主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)
编辑
三、初识Redis:
官网:Redis
- Redis是一个开源的key-value存储系统。
- 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。
- 这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。
- 在此基础上,Redis支持各种不同方式的排序。
- 与memcached一样,为了保证效率,数据都是缓存在内存中。
- 区别的是Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。
- 并且在此基础上实现了master-slave(主从)同步。
编辑
应用场景:
配合关系型数据库做高速缓存:
- 高频次,热门访问的数据,降低数据库IO
- 分布式架构,做session共享
编辑
多样的数据结构存储持久化数据:
编辑