一、非关系型数据库(NoSQL)出现的原因
随着时代,对数据的存储,随之产生更高级的处理数据的手段
-
①单机数据库时代:一个应用,一个单机数据库实例。当数据过多时,查询的时间就会很长。
-
②缓存、水平切分时代:一张表一个数据库。且中间添加一个缓存,将常用数据存放在内存,访问较快
-
③读写分离时代:由于数据过多,多人访问一个数据库的一张表,并同时进行增删改查,压力过大。将数据库中的表分开多个做成一个集群,一部分进行读,一部分进行写。读写分离。内部进行通知,数据同步
-
④分表分库时代(集群):由于数据太多太多,一个表里面的数据细分成多个表存储,甚至一个表分成多个数据库存储。需要不停的切换数据源去访问数据
-
以上均为关系型数据库:mysql,oracle,DB2,sqlServer等
-
由于关系型数据库访问效率太低,数据过多时,需要分库分表,所以进入非关系型数据库
-
非关系数据库(NoSQL):改变底层存储机制,聚合数据结构存储数据,不再采用表存储数据
二、NoSQL介绍
2.1 NoSQL数据库简介
-
NoSQL = Not Only SQL(不仅仅是SQL) ,泛指non-relational(非关系型数据库)。
-
随着互联网web2.0网站的兴起,比如谷歌或Facebook每天为他们的用户收集万亿比特的数据,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展,就是一个数据量超大。
-
传统的SQL语句库不再适应这些应用了。NoSQL数据库是为了解决大规模数据集合多重数据种类带来的挑战,特别是超大规模数据的存储。
-
NoSQL数据库的一个显著特点就是去掉了关系数据库的关系型特性,数据之间一旦没有关系,使得扩展性、读写性能都大大提高。
2.3 当前NoSQL的使用
-
NoSQL和传统的关系型数据库不是排斥和取代的关系,在一个分布式应用中往往是结合使用的。
-
复杂的互联网应用通常都是多数据源、多数据类型,应该根据数据的使用情况和特点,存放在合适的数据库中。
2.3 NoSQL数据模型
NoSql数据库:聚合结构
{
"student":{
"id":1001,
"name":"zhangsan",
"addresses":{"province":"beijing","city":"daxingqu","street":"liangshuihe"},
"courses":[
{
"id":01,
"name":"java"
},
{
"id":02,
"name":"mybatis"
},
{
"id":03,
"name":"spring"
}
]
}
}
三、Redis
3.1 Redis简介
-
Remote Dictionary Server(远程字典服务器),是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库。
-
一条数据就是一个值,对应一个键
-
Redis中的数据大部分时间都是存储内存中的,适合存储频繁访问、数据量比较小的数据
3.2 Redis的特点
- 支持数据持久化
Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 - 支持多种数据结构
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 - 支持数据备份
Redis支持数据的备份,即master-slave模式的数据备份。
四、Linux上安装Redis
第一步:下载
第二步:使用xfp上传到压缩包到Linux系统
第三步:解压
第四步:编译redis,进入解压目录,并且执行make命令
- 如图如果出现找不到gcc,则执行第五步
- 如果未出现,则直接在目录下执行
make
命令
第五步:安装gcc
什么是 gcc ?
- gcc是GNU compiler collection的缩写,它是Linux下一个编译器集合(相当于javac ),是c或c++程序的编译器。
怎么安装gcc ?
- 在有外网的情况下,使用yum进行安装。执行命令:
yum -y install gcc
。
检验gcc是否安装完毕
- 使用
gcc -v
指令
第六步:再次回到redis解压目录执行make命令进行编译
-
如果没装gcc运行了文件且运行失败,则需要将之前的编译的文件进行清理
-
使用
make distclean
指令进行清理
第七步:使用执行make install安装redis
注意:在make执行之后再执行 make install,该操作则将 src下的许多可执行文件复制到/usr/local/bin 目录下,
这样做可以在任意目录执行redis的软件的命令(例如启动,停止,客户端连接服务器等)
第八步:启动redis
-
①前台启动
redis-server
-
②后台启动
redis-server &
(推荐使用) -
③查看redis是否启动,使用指令
ps -ef|grep redis
-
④ 若修改redis的配置文件redis.conf,必须在启动时指定配置文件,否则修改无效!
五、开启与关闭Redis
5.1 启动Redis
- ① 前台启动:在任意目录下执行
redis-server
- ② 后台启动:在任何目录下执行
redis-server &
- ③ 结合配置文件启动:启动redis服务时,指定配置文件
redis-server redis.config &
- ④ 推荐使用后台启动,不会占用前台控制器
- ⑤ 如:redis默认占用6379端口号,我们可以进行修改配置文件,修改端口号
5.2 关闭Redis
-
先查看Redis是否已经启动,
ps-ef|grep redis
-
关闭Redis服务
-
方式一:直接杀死进程(暴力关闭)不推荐
- ① 先通过
ps-ef |grep redis
查看当前进程 - ② 使用
kill - 9 [端口号]
彻底杀死进程 - ③ 此方式容易丢失数据
- ① 先通过
- 方式二:使用Redis本身的命令
- 通过命令:
redis-cli shutdown
- 通过命令:
六、Redis客户端
6.1 概述
-
Redis客户端是一个程序,通过网络连接到Redis服务器,从而实现跟 Redis服务器的交互。
-
Redis客户端发送命令,同时显示Redis服务器的处理结果。
-
redis-cli(Redis Command Line Interface)是Redis自带的基于命令行的Redis客户端,用于与服务端交互,我们可以使用该客户端来执行redis的各种命令。
6.2 启动客户端
- 使用命令:
redis-cli
6.3 连接Redis服务器
- 默认连接本机(127.0.0.1)上的6379端口
- 可以一台电脑装多个Redis服务,一个Redis占用一个端口号
指定端口号:
- 使用
redis-cli - p 端口号
:连接127.0.0.1的指定端口上的redis服务,本机上多个端口号
指定IP地址:
- 使用
redis-cli -h ip地址 -p 端口
:连接指定ip主机上的指定端口的redis
6.4 退出Redis客户端
- 使用命令:
exit