1. NoSQL概述
Redis是一种数据库,数据库其实就是存储数据、管理数据。那么和MySQL有什么区别呢?我们知道,MySQL在存储数据的时候,需要定义若干个字段,存储一条数据,就需要将这几个字段都是设置好数据。MySQL等类型的数据库也被称为关系型数据库,即若干个字段表示一条数据。
某种程度上说,数据库限制了数据的管理。而软件的根本是对数据进行操作,所以说,软件的性能一定程度上取决于数据库的性能。所以说,软件和数据库的更新换代是紧密相关的。软件的需求会刺激数据库的更新换代,而数据库的更新换代也会促使软件的迭代。
数据库应用的演变历程如下所示:
- 单机数据库时代:一个应用采取一个数据库实例。
- Memcache时代:缓存时代,将数据库中的表临时存储在缓存,在缓存中也存在数据库的数据表(提升频繁操作数据库的效率)。
- 读写分离时代:针对读写的需求不同,对读写进行分离,一个数据库只负责读、一个只负责写。(提升数据库的并发操作能力,功能分类。)
- 分库分表时代(集群):(数据量太大,分成多个数据库;每个原始的数据表,分成多个表,比如一天的数量量存储在一个表中。)
- NoSQL时代:上述只是统一的表,即关系型数据库。随着数据的多样性以及数据量过大,关系型数据库中的表之间的关系开销太大,出现了非关系型数据库NoSQL。(改变了传统关系型数据库的底层结构,采用聚合数据结构存储数据。)常见的NoSQL有Redis、MongoDB、HBase等等。
非关系型数据库采用聚合模型:把一组相关联的数据作为一个整体进行存储和管理。聚合模型主要有:
- BSON格式:将数据保存到键值对中,数据和数据之间用逗号隔开,{}表示对象,[]表示数组。
- K-V键值对
- 列簇
- 图标模型等等
Redis采用的是K-V键值对模型来存储数据的。
2. Redis概述
Redis是Remote Dictionary Server,从名称中可以看到,其存储结果就是K-V键值对(所以,其数据量不会太大,否则字典的检索效率较低)。该数据库是一个用C语言编写的、开源的、基于内存运行并支持持久化的、高性能的NoSQL数据库,也是当前热门的NoSQL数据库之一。
该数据库是基于内存运行的,所以大部分时间都是存储在内存中(因此Redis也被称为内存数据库),其访问效率较高,定期持久化统一存储到磁盘中。所以Redis要求是:小数据量、要求频繁访问的。至于大数据量的可以采用MongoDB、HBase。
Redis有以下特点:
支持数据持久化
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以在此加载到内存中进行使用
支持多种数据结构
Redis不仅仅支持简单的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储。
支持数据备份
Redis支持数据的备份,即master-slave模式的数据备份。
3. 安装Redis
直接从Redis官网Download | Redis下载对应版本即可。这里下载了Linux版本,安装教程可检索网上博客,这里不再赘述。注意,一般情况下,需要将Redis启动命令添加到Linux的bin目录下,这样就可以随时启动Redis了。
3.1 启动Redis
启动命令redis-server
(前台启动服务器,并直接进入客户端),或者redis-server &
(这是后台启动命令,不占用命令行窗口)。如下所示,注意,Redis的默认端口号是6379。
3.2 关闭Redis
关闭命令redis-cli shutdown
,实际上这个命令是先以默认方式连接客户端,然后再执行shutdown命令(这里注意,如果redis服务启动的时候不是默认配置,此时redis-cli肯定连不上服务,需要指定IP以及端口号)。当然也可以采用Linux自带的命令kill来暴力关闭(不推荐,容易造成数据丢失)。
如果是后台启动,或者是退出了Redis的命令行(客户端),可以采用redis-cli
命令来进入命令行。在命令行中输入exit来退出命令行,但不会停止服务。shutdown命令是退出并停止服务。
3.3 Redis客户端
和MySQL一样,Redis也分为服务器端和客户端。服务器端就是提供数据管理服务的,客户端则是用于提供给用户界面来操作服务端管理数据的,即客户端用来连接redis服务,向redis服务端发送命令,显示redis服务处理结果。当然,客户端也分为官方默认和第三方提供的工具。其实本质上都是连接服务器端所在IP主机的6379端口的服务器端程序。
官方提供的客户端,就是直接通过redis-cli
命令进入即可。(redis因为追求效率,所以一般情况下可以不通过用户名和密码进入,但是提供了设置用户名和密码的操作。)
redis-cli
:进入redis客户端(默认为6379端口)redis-cli -p 6379
:进入端口为6379的redis的客户端redis-cli -h 127.0.0.1 -p 6379
:进入主机为127.0.0.1的,端口为6379的redis的客户端
退出客户端:exit
或者quit
(不关闭服务);退出客户端:shutdown
(并关闭服务)
4. 备注
参考B站《动力节点》。