Nosql概述
Nosql(Not Only Sql):NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。1
Nosql特点:
- 易扩展(数据之间没有关系,很好扩展)
- 大数据量、高性能(NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。比如Redis一秒写8万次,读取11万,Nosql的缓存记录级,是一种细粒度的缓存,性能比较高)
- 数据类型多样型(不需要事先设计数据库,随取随用)
- 高可用,NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。
传统的RDBMS和Nosql
- 传统的RDBMS:结构化组织、SQL、操作操作,数据定义语言、严格的一致性、基础的事务
- Nosql:不仅仅是数据、没有固定的查询语言,键值对存储,列存储,文档存储,图形数据库(社交关系)、最终一致性、CAP定理和BASE(异地多活)、高性能,高可用,高扩展
了解3V和3高
大数据时代的的3V:主要是描述问题的
- 海量Volume
- 多样Variety
- 实时Velocity
大数据时代的3高:主要是对程序员的要求
- 高并发
- 高扩展
- 高性能
Nosql四大类
键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
- 新浪:Redis
- 美团:Redis+Tair
- 阿里、百度:Redis+memcache
列存储数据库
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。
- Hbase
- 分布式文件系统
文档型数据库(bson格式和json一样)
文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。如:CouchDB, MongoDb
- MongoDB是一个基于分布式文件存储的数据库,C++编写,主要用来处理大量的文档!
- MongoDB是一个介于关系型数据库和非关系型数据库中间的产品,MongoDB是非关系型数据中功能最丰富,最像关系型数据库的!
图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
- 不是存图片的,放的是关系,比如:朋友圈社交网络,广告推荐!
- Neo4j,infoGrid
适用场景
- 数据模型比较简单;
- 需要灵活性更强的IT系统;
- 对数据库性能要求较高;
- 不需要高度的数据一致性;
- 对于给定key,比较容易映射复杂值的环境。
Redis概述
Redis(Remote Dictionary Server ):即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,也称之为结构化数据库。2
官网介绍:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。
Redis作用
- 内存存储、持久化、内存中是断电及失、因此持久化很重要(rdb、aof)
- 效率高,可以用于高速缓存
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(浏览量)
特性:
- 多样的数据类型
- 持久化
- 集群
- 事务
Tips:
Redis安装
Windows安装
1、下载安装包并解压 https://github.com/microsoftarchive/redis/releases/tag/win-3.2.100(目前已停更)
2、开启Redis,双击运行服务 redis-server.exe
3、使用Redis客户端连接 redis-cli.exe
Linux安装
1、下载安装包:redis-6.2.1.tar.gz (根据实际版本)
2、解药Redis的安装包:tar -zxvf redis-6.2.1.tar.gz
3、进入解压后的文件,可以看到Redis的配置文件:redis.conf
4、安装环境:yum install gcc-c++
5、配置:make
6、检验安装:make install
7、redis的默认安装路径:usr/local/bin下
8、复制redis配置文件到usr/local/bin下
# 创建配置文件夹
mkdir kconfig
# 移动配置文件到kconfig
cp /usr/local/Redis/redis-6.2.1/redis.conf kconfig/
9、redis默认不是后台启动,修改配置文件(redis6是默认的)
vim redis.conf 修改:protected-mode yes
10、 启动redis服务
[root@localhost bin]# redis-server konfig/redis.conf
11、连接redis
redis-cli -p 6379
# 测试连接
ping
> PONG # 代表成功
set name axu
> OK
get name
> "axu"
keys *
> "name"
12、查看redis进程是否开启
ps -ef|grep redis
13、关闭服务连接
# 关闭服务连接
shutdown
# 退出
exit