NoSQL概述
NoSQL
No only SQL 泛指非关系型数据库
关系型数据库 : 表格 行 列
NoSQL特点
- 方便扩展(数据间无关系 很好扩展)
- 大数据量高性能(Redis一秒读写数万级 NoSQL的缓存记录级 是一种细粒度的缓存,性能较高)
- 数据类型多样型(无需事先设计数据库,随取随用)
传统RDBMS和NoSQL
传统 RDBMS:(包括相互联系的数据集合 (数据库)和存取这些数据的一套程序 (数据库管理系统软件)。关系数据库管理系统就是管理关系数据库,并将数据组织为相关的行和列的系统。mySQL、SQL Server 都是关系数据库管理系统 (RDBMS)。) - 结构化组织 - SQL - 数据和关系都村子啊单独的表中 row col - 操作 数据定义语言 - 严格的一致性 - 基础的事务 - ...
NOSQL
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储、列存储、文档存储、图形数据库(社交关系)
- 最终一致性
- CAP定理和BASE 异地多活
CAP定理,又称CAP原则和作布鲁尔定理,
指的是在一个分布式系统中,
Consistency(一致性)、
Availability(可用性)、
Partition tolerance(分区容忍性)
这三个基本需求,最多只能同时满足其中的2个。
- 高性能、高可用 高可扩
大数据时代:3V+3高
3V 主要描述问题:
- 海量Volume
多样 Variety
- 实时Velocity
3高 主要对程序要求
- 高并发
- 高可扩
- 高性能
Redis 是什么
Redis(Remote Dictionary Server) 远程字典服务
是一个开源的使用ANSI C语言编写、支持网络、可基于内存也可持久化的日志型、Key-value数据库,并提供多种余元的API
redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
Redis可以用作数据库、缓存、消息中间件MQ
功能
- 内存存储、持久化,内存中是断电即失,持久化很重要(rdb、aof)
- 效率高,可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量)
.......
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
中文Redis官网:http://www.redis.cn
Linux安装
yum install gcc-c++
make
make install
ps -ef|grep redis # 查看redi进程是否开启
shutdown # 关闭redis
exit # 退出
redis-cli -p 端口号 # 连接redis
性能测试
redis-benchmark 压力测试工具
redis-benchmark -h localhost -p 6673 -c 100 -n 10000 # 100并发十万次请求测试
基础知识
默认数据库数 16
默认数据库编号 0
默认端口 6379