NoSQL概述
发展历程
1、单机MySQL的年代
网站发展之初,网站的访问量基本不会太大,单个数据库完全足够,那个时候基本都是静态网页HTML服务器没有压力。
数据量如果太大,一个机器放不下了,B+Tree(索引也放不下了),访问量太大,一个服务器承受不了,只要出现以上三种情况,必须要晋级。
2、Memcached(缓存)+ MySQl+垂直拆分(读写分离)
3、分库分表 + 水平拆分 + MySQl集群
技术的发展过程中,对人的要求提高了,以前的musql被替换成了mysql集群
MyISAM–>表锁
Innodb–>行锁
4、目前基本的网站模型
为什么要用NoSQL
用户的个人信息,社交网络,地理位置等,数据爆发增长
这个时候我们就要使用NoSQL数据库的,NoSQLkey很好的处理以上情况
什么是NoSQl
NoSQL = Not Only SQL (不仅仅是SQL) 泛指非关系型数据库
1NoSQL的特点
方便扩展(数据之间没有关系,很好扩展)
大数据量,高性能(Redis一秒写8W次,读取11万)
数据类型是多样的!(不需要事先设计数据库!随取随用)
传统的RDBMS(结构化组织、SQL、数据和关系都单独存在单独的表、一致性、基础的事务) 和 NoSQL(没有固定的查询语言、不仅仅是数据、键值对、最终一致性、CAP定理和BASE、三高)
2、了解:3V + 3高(大数据)
大数据时代的3V:海量(Volume)、多样(Variety)、实时(Velocity)
大数据时代的3V:高并发、高可用、高可扩
NoSQL四大分类
1、kv键值对(Redis、Oracle BDB)
2、文档型数据库(MongoDB、ConthDB)
3、列存储数据库(HBase、分布式文件系统)
4、图关系数据库(Neo4J、InfoGrid存的是关系)
Redis 入门网站
官网:https//redis.io/
中文网:http://www.redis.cn/
Redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务
,是一个开源
的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
,并提供多种语言的API,免费、开源
安装
1.下载
github地址: https://github.com/tporadowski/redis/release2
2.下载完成解压到环境目录即可
3.开启Redis,双击运行服务(redis-server.exe
)默认端口为:6379
4.使用客户端连接服务(redis-cli.exe
)输入ping
出现 PONG
即为连接成功!
Linux
-
下载linux安装包 redis-5.0.8.tar.gz
-
解压Redis的安装包,程序/opt
-
进入解压后的文件,可以看见redis的配置文件
-
基本的环境安装
-
redis默认安装路径user/local/bin/
6.将redis配置文件,复制到当前目录下
7.启动redis服务(运行redis-server
……)测试连接 redis -cli -p 6379 -->ping -->PONG
测试性能
- 在安装的Redis目录下打开
redis-benchmark.exe
文件,自动完成测试
基础知识
Redis默认有16
个数据库,默认使用第0个
数据库
-
切换数据库 –
select 1
进入第一个数据库–
-
查看数据库所有的key:
key *
-
清空当前数据库:
flushdb
-
清空所有数据库:
FLUSHALL