从这篇开始记录Redis相关知识:
1 NoSQL是什么?
1.1 NoSQL特性
1.1.1 易扩展
1.1.2 大数据量与高性能
1.2 RDBMS vs NoSQL
1.2.1RDBMS
1.2.1.1 高度组织化结构数据
1.2.1.2 结构化查询语言(SQL)
1.2.1.3 数据和关系都存储在单独的表中
1.2.1.4 数据操纵语言,数据定义语言
1.2.1.5 严格的一致性
1.2.1.6 基础事务
1.2.2 NoSQL
1.2.2.1 代表不仅仅是SQL
1.2.2.2 没有声明性查询语言
1.2.2.3 没有预定义的模式
1.2.2.4 键 - 值对存储,列存储,文档存储,图形数据库
1.2.2.5 最终一致性,而非ACID属性
1.2.2.6 非结构化和不可预知的数据
1.2.2.7 CAP定理
1.2.2.8 高性能,高可用性与可伸缩性
2 NoSQL去哪里下载?
3 NoSQL该怎么玩?
4 3V+3高
5 当下NoSQL经典应用
6 NoSQL数据库的四大分类
7 在分布式数据库中CAP远离CAP+BASE
1.NoSQL是什么?
NoSQL=Not only sql 非关系型数据库
数据库常用类型就是那么几种。随着业务发展,比如说社交网络中数据关系是错综复杂的,比如说你大爷的奶奶的老公的儿子的某某某,这种数据存储在关系型数据库中显然是不太现实的。🈶️比如说横向的扩展一张表中的子段,不停的alter table 以及我数据表中子段有可能达到1000个,这个也不太现实。传统数据库是不能支撑的。
1.1 NoSQL 的特性:
1.1.1 易扩展
NoSQL数据库种类繁多,但是一个共通的特点就是去掉关系型数据库的关系型特性,数据之间无关系,这就非常容易扩展,也无形之间,在架构的层面上带来了可扩展的能力。
1.1.2 大数据量与高性能
一般的MySQL使用Query Cache ,比如说我们常用的Hibernate,MyBatis等,在使用时我们可以使用一级、二级缓存来提高应用的性能, 比如用户在访问使用缓存的应用时,数据是从缓存中读取的。但是在使用传统数据库时,每次表更新之后,原有的Cache就会失效,这是一种大粒度的Cache,一般针对web2.0的交互频繁的应用,cache性能不高。而NoSQL是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上性能就要高很多了。
Redis:read=8w次/s ,write =11w次/s
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系型数据库里,增删字段是一件很恐怖的事情,如果是大数据量的表,增加字段简直是一个噩梦。因为现在数据少,但在生产活动下,是很困难的。
1.2 RDBMS vs NoSQL
在目录上有两者的对比:
RDBMS
高度组织化结构数据
结构化查询语言(SQL)
数据和关系都存储在单独的表中
数据操纵语言,数据定义语言
严格的一致性
基础事务
1.2.2 NoSQL
代表不仅仅是SQL
没有声明性查询语言
没有预定义的模式
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性与可伸缩性
后期再扩展,这块不太懂
顺便说下现在大型互联网公司的应用中缓存使用:
美团Tair
淘宝Redis
论缓存性能Memcache 是高速缓存,性能最强,但是Redis 存储的种类最多,所以相对权重中Redis最强。
2 NoSQL去哪里下载?
Redis下载地址:http://redis.io/download
配置教程:
Mac:http://blog.sina.com.cn/s/blog_62d4d5900101bp7s.html
Windows:http://www.runoob.com/redis/redis-install.html
linux:http://www.linuxdown.net/install/soft/2016/0108/4305.html
3 nosql该怎么玩?
NoSQL 功能:
KV:
Cache:
Persistence:
后期补充
4 3V+3高
3V+3高
大数据时代的3V
海量(Volume)
朋友圈,淘宝双十一,数据量大
多样(Variety)
一条微博图片、文字、背景音乐
实时(Velocity)
比如12306 数据实时,比如说携程定飞机票,其实做不到绝对的实时。
互联网需求的3高
高并发
微信抢红包,12306多用户抢票
高性能
性能要高,数据库容灾备份,keep alive 等。
高可扩
pc内存要大。
纵向扩展:内存条2、4、8G扩充,纵向增长有其限制
横向扩展:多个pc同时运行,对外封装,前方挡着一个7起任务分配与引流作用的负载均衡。
博客搬家:大坤的个人博客
欢迎评论哦~