【编程不良人】【Redis】【01】NoSQL+Redis介绍、安装


持续学习&持续更新中…

守破离


1. NoSQL的引言

  • NoSQL(Not Only SQL ),意即不仅仅是SQL, 泛指非关系型的数据库,一般应与RDBMS配合使用。
  • 关系型数据库一般采用SQL语句来操纵;而NoSQL并不是使用SQL语句的,有其特定的语法。
  • NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。

2. 为什么是NoSQL

  • NoSQL这个技术门类,早期就有人提出,发展至2009年趋势越发高涨。
  • 随着互联网网站的兴起,传统的关系数据库在应对动态网站,特别是超大规模和高并发的纯动态网站已经显得力不从心,暴露了很多难以克服的问题。
  • 如商城网站中对商品数据频繁查询、对热搜商品的排行统计、订单超时问题、微信朋友圈音频视频存储等相关系统,使用传统的关系型数据库实现就显得非常复杂,虽然能实现相应功能但是在性能上却不是那么乐观。NoSQL这个技术门类的出现,更好的解决了这些问题,它告诉了世界,这个世界上不仅仅只有SQL。

3. NoSQL的四大分类

3.1 键值(Key-Value)存储数据库
  • 这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。

  • Key/value模型对于IT系统来说的优势在于简单、易部署。

  • 但是如果DBA只对部分值进行查询或更新的时候,Key-value就显得效率低下了。

  • 相关产品:

    • Redis (key-value)处于内存中 快
    • SSDB (key-value)存放于硬盘 慢
    • Oracle BDB
3.2 列存储数据库
  • 这部分数据库通常是用来应对分布式存储的海量数据。

  • 键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。

  • 相关产品:Cassandra、HBase、Riak.

3.3 文档型数据库
  • 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似,该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON(BSON:Binary JSON)。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高

  • 以文档形式存储

  • BSON/document:

    {
        "string": "value",
        "integer": 10,
        "bool": true,
        "null": null,
        "array": [],
        "obj": {}
    }
    
  • 相关产品:MongoDB、CouchDB、 MongoDb(4.x). 国内也有文档型数据库SequoiaDB,已经开源。

  • MongoDB(文档型NoSQL数据库)大有取代传统数据库的趋势,只不过由于文档型数据库对于事务等的支持目前还不太完善等原因,而一直未能取代传统的RDBMS。

  • 为什么要取代传统的RDBMS呢?因为传统的SQL型数据库太死板了,不易扩展。开发项目的第一件事就是要事先考虑清楚设计好库表,很麻烦,而且在项目开发过程中、谁也不知道客户还又有什么需求,所以这种单一的二维表数据格式也很不灵活。

3.4 图形(Graph)数据库
  • 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。

  • 可以存储一些地图、社交网络等信息,用的不多

  • 相关产品:Neo4J、InfoGrid、 Infinite Graph、

4. NoSQL应用场景

NoSQL一般与RDBMS相辅相成

  • 数据模型比较简单

  • 需要灵活性更强的IT系统(系统设计灵活、业务场景多变)

  • 对数据库性能要求较高

  • 不需要高度的数据一致性(目前而言,所有NoSQL的产品对于事务的支持都不是特别良好)

5. Redis的介绍

5.1 什么是Redis
  • Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.

  • Redis 开源 遵循BSD 基于内存数据存储,被用作为数据库、缓存、消息中间件

  • Redis作消息中间件是不太优秀的,主要作为数据库,用于缓存
    在这里插入图片描述

  • Redis的数据都在内存中,因此它的特点是:读写快、断电立即消失

  • Redis有一个持久化机制,可以将内存中的数据定期的写入到磁盘,因此Redis可以看做是一个数据库

  • 总结: Redis是一个内存型的数据库

5.2 Redis的特点
  • Redis是一个高性能key/value内存型数据库

  • Redis支持丰富的数据类型

  • Redis支持持久化

  • Redis是单进程、单线程的,不支持并发,因此不存在线程安全问题,于是很多时候可以使用Redis解决分布式锁这样的问题。

6. Redis安装

本套教程基于redis-4.0.10

准备环境:

  • vmware15.x+
  • centos7.x+

下载Redis源码包,并将下载的Redis安装包上传到Linux中:

  • https://redis.io/
  • redis-4.0.10.tar.gz
  • 解压缩文件:在这里插入图片描述在这里插入图片描述

安装Redis:

  • yum install -y gcc(如果已经安装过了gcc就不需要再安装了)
  • 进入redis的解压缩目录执行如下命令:make MALLOC=libc
  • 编译完成后执行如下命令:make install PREFIX=/usr/local/redis

启动Redis服务:

在这里插入图片描述
在这里插入图片描述

执行客户端连接操作:

在这里插入图片描述

简单使用:

在这里插入图片描述

在这里插入图片描述

7. 配置Redis服务后台运行

进入Redis的解压缩目录:/usr/local/redis-4.0.10,查看redis.conf

在这里插入图片描述

发现有如下配置,可以发现Redis服务默认不会运行在后台而是像Tomcat那样运行在一个独立的命令行窗口:

在这里插入图片描述

所以修改配置:

在这里插入图片描述

启动Redis服务就会发现这时Redis可以在后台默默运行了:

在这里插入图片描述

关闭Redis服务:

在这里插入图片描述

参考

编程不良人: Redis实战教程.


本文完,感谢您的关注支持!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值