NoSQL(NoSQL=Not Only SQL),意为SQL运动,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨,它指的是非关系型的数据库,随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL是以key-value形式存储,和传统的关系型数据库不一样,不一定遵守传统数据库的一些基本要求比如说遵守SQL标准、ACID属性、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。
NoSQL特点
1.处理超大量的数据
2.运行在便宜的PC服务器集群上
3.击碎了性能瓶颈
NoSQL适用场景
1.对数据高并发读写
2.对海量数据的高效存储和访问
3.对数据的高可扩展性和高可用性
------------------------------------------------------这里是华丽的分割线-----------------------------------------------------------
NoSQL的代表Redis介绍
官网介绍:
Redis is an open source, BSD licensed, advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs.
看不懂没关系(嘻嘻^_^)
Redis是一个开源的,BSD证书、先进的key-value存储。它通常被称为数据结构服务器,因为键可以包含字符串,哈希,链表,集合、有序集合、位图和计数器。
Redis是一个Key-Value存储系统。它支持存储的value类型很多,包括string(字符串)list(链表)、set(集合)、zset(有序集合)这些数据类型都支持push/pop、add/remove及取交集和并集及更丰富的操作,Redis支持各种不同方式的排序,为了保证效率,数据都是缓存在内存中它也可以周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件
新浪是全球最大的Redis用户
用法一:应用程序直接访问Redis服务器
用法二:应用程序直接访问Redis,只有当Redis访问失败时才访问MySQL
Redis适用场景:
1.取最新N个数据的操作
2.排行榜应用,取TOP N操作
3.需要精确设定过期时间的应用
4.计数器应用
5.Uniq操作,获取某段时间所有数据排重值
6.实时系统,反垃圾系统
7.Pub/Sub构建实时消息系统
8.构建队列系统
9.缓存
Redis MySQL和MongoDB区别
Redis和MongoDB没有字段,MySQL有
MongoDB是集合、MySQL表、Redis没有