Redis概述_为什么要用NoSQL
单机Mysql的美好年代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是 静态网页,动态交互类型的网站不多。
Tomcat与数据库分开部署
Tomcat和数据库分别独占服务器资源,显著提高两者各自性能。
新的问题: 随着用户数的增长,并发读写数据库成为瓶颈。
引入本地缓存和分布式缓存
通过缓存能把绝大多数请求在读写数据库前拦截掉,大大降低数据库压力。其中涉及的技术包括:使用 memcached作为本地缓存,使用Redis作为分布式缓存。
缓存抗住了大部分的访问请求,随着用户数的增长,并发压力主要落在单机的Tomcat上,响应逐 渐变慢
数据库读写分离
由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数 据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展 性。Mysql的master-slave模式成为这个时候的网站标配了
什么是NoSQL
NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,泛指非关系型的数据库。随着互联网web2.0 网站的兴起,传统的关系数据库在应付特别是超大规模和高并发类型纯动态网站已经显得力不从心,暴 露了很多难以克服的问题。
结构化数据和非结构化数据
结构化数据指的是由二维表结构来逻辑表达和实现的数据,严格遵循数据格式与长度规范,也称作 为行数据。 非结构化数据,指的是数据结构不规则或不完整,没有任何预定义的数据模型,不方便用二维逻辑 表来表现的数据,例如办公文档(Word)、文本、图片、HTML、各类报表、视频音频等。
NoSQL的四大分类
KV 型 NoSql (代表 ----Redis ) KV 型 NoSql 顾名思义就是以键值对形式存储的非关系型数据库,是最简单、最容易理解也是大家最熟悉 的一种 NoSql ,因此比较快地带过。 特点: 数据基于内存,读写效率高 KV 型数据,时间复杂度为 O(1) ,查询速度快 注意: KV 型 NoSql 最大的优点就是 高性能 ,利用 Redis 自带的 BenchMark 做基准测试, TPS 可达到 10 万的 级别,性能非常强劲。 列式 NoSql (代表 ----HBase ) 列式 NoSql ,大数据时代最具代表性的技术之一了,以 HBase 为代表。 关系行数据库数据注意: 看到每行有 name 、 phone 、 address 三个字段,这是行式存储的方式,且可以观察 id = 2 的这条数 据,即使 phone 字段没有,它也是占空间的。 列式数据库数据