NoSQL( Not Only SQL
),意即不仅仅是SQL, 泛指非关系型的数据库。Nosql这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。
随着互联网网站的兴起,传统的关系数据库在应付动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。如商城网站中对商品数据频繁查询
、对热搜商品的排行统计
、订单超时问题
、以及微信朋友圈(音频,视频)存储等相关使用传统的关系型数据库实现就显得非常复杂,虽然能实现相应功能但是在性能上却不是那么乐观。nosql这个技术门类的出现,更好的解决了这些问题,它告诉了世界不仅仅是sql。
# 1.说明:
- 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
# 2.特点
- Key/value模型对于IT系统来说的优势在于简单、易部署。
- 但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。
# 3.相关产品
- Tokyo Cabinet/Tyrant,
- `Redis` Redis就属于NoSQL中的键值存储数据库
- SSDB
- Voldemort
- Oracle BDB
# 1.说明
- 这部分数据库通常是用来应对分布式存储的海量数据。
# 2.特点
- 键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。
# 3.相关产品
- Cassandra、HBase、Riak.
# 1.说明
- 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高
# 2.特点
- 以文档形式存储
# 3.相关产品
- `MongoDB`、CouchDB、 MongoDb(4.x). 国内也有文档型数据库SequoiaDB,已经开源。
# 1.说明
- 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。
- NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。
# 2.特点
# 3.相关产品
- Neo4J、InfoGrid、 Infinite Graph、
数据模型比较简单
需要灵活性更强的IT系统
对数据库性能要求较高
不需要高度的数据一致性
Redis属于NoSQL中的键值存储数据库。
Redis 开源 遵循BSD 遵循内存数据存储 被用户作为 数据库 缓存 消息中间件
Redis 中数据存储在内存中 内存中数据特点:读写快 断电立即消失
Redis 有一个机制:持久化机制,将内存中的数据定期地写入到磁盘,保证数据不丢失
Redis是一个高性能key/value内存型数据库
Redis支持丰富的数据类型 (String、List、Set、ZSet、Hash)
Redis支持持久化 内存数据 持久化到硬盘中去
Redis单线程,单进程 线程安全 但是它的效率还是非常的高
本篇博文需要用到的 centos系统的镜像文件、VMware安装包、SecureCRT安装包、redis源码包都已经放在了网盘中
链接:百度网盘
提取码:rhxx
VMware是一款虚拟机软件,当我们有一些操作不方便在本机进行时,我们可以安装一个虚拟机在其中进行,从某种意义上说,一台物理计算可以做什么,虚拟机就可以做什么。它支持的客户操作系统涵盖绝大多数主流操作系统,包括 Microsoft 全系列的操作系统以及大多数版本的 Linux。
总结下来就是一句话,虚拟机可以当做一个计算机,并且这个计算机你不用担心自己的操作会使其硬件受损,因为其使用的是镜像文件,只是虚拟硬件,不是真实的硬件。
对于VMware软件的安装,建议安装15.5.0及以上的版本,因为15.5.0以下的版本可能在启动虚拟机时会出现蓝屏重启现象,导致启动虚拟机失败。这里的话VMware的安装就不演示了,很简单。这里我们来进行在虚拟中安装Linux系统的演示
之后等待安装完成即可
安装完成之后会重启虚拟机
现在的虚拟是没办法上网的,所以我们需要修改一下网络配置使其可以上网
使用下面的命令打开配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
保存完之后不是立即生效的,我们需要执行下面的命令重启网络服务使其生效
systemctl restart network.service
secureCRT是一款支持ssh的终端仿真程序,简单的说是windows下登陆unix或者linux的一款软件。
将网盘中的压缩文件SecureCRT_Portable解压下来,之后打开exe文件
从Linux虚拟机中获取ip地址
- 准备环境
vmware15.x+ (虚拟机软件)
centos7.x+ (Linux操作系统)
- 下载redis源码包
# 下载redis源码包
http://www.redis.cn/
(当然也可以使用我上传的redis源码包)
下载下来的源码包
- 将下载的redis源码包上传到Linux中
- 解压缩Linux中的redis压缩包
# 解压缩文件
tar -zxvf redis-4.0.10.tar.gz
(注:只要在Linux界面上点击鼠标右键就可以将剪切板上的内容粘贴到Linux中)
redis-4.0.10 是一个源码包,必须编译之后才能生成可执行的文件,
我们进入redis-4.0.10 这个包进行查看
有Makefile这样的安装包就可以直接执行make进行编译安装,由于它使用的c语言编写的,所以我们在安装之前一定要安装c语言的GCC的依赖
- 安装gcc
安装gcc
yum install -y gcc
- 进入压缩目录进行安装
进入redis-4.0.10目录里面,
# 进入解压缩目录执行如下命令
make MALLOC=libc
- 将redis安装到usr目录里面
# 编译完成后执行如下命令
make install PREFIX=/usr/redis
- 进入/usr/redis/bin 启动redis服务
进入/usr/redis/
进入bin
启动redis
# 执行下面命令启动redis
./redis-server
- 通过客户端操作redis
刚刚启动redis的窗口不能关闭,且不能按 Ctrl + c,我们需要克隆一个会话
在新克隆的窗口中进入 /usr/redis/bin/ 执行 redis-cli 去连接,且在连接的时候要指定连接哪个主机的哪个端口的redis服务
# 进入bin目录执行客户端连接操作
./redis-cli -h localhost -p 6379
(注:如果客户端连接的是当前主机的6379端口的redis,则主机号和端口号可以省略,即执行
./redis-cli 即可)
- 测试
keys * : 展示redis数据库中的所有的key