Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装

NoSQL 概述

NoSQL = Not Only SQL,泛指非关系型数据库

关系型数据库:由表格组成,通过行和列记录数据

但是很多数据,如社交网络,地理位置等的存储并不需要一个固定的格式

NoSQL 的特点:

  1. 方便扩展(数据之间没有关系,很好扩展)

  2. 大数据高性能(Redis 一秒写8万次,读取11万次;NoSQL 的缓存记录级,是一种细粒度的缓存,性能会比较高)

  3. 数据类型是多类型的(不需要事先设计数据库!随取随用!)

  4. 传统的 RDBMSNoSQL
    传统的 RDBMS:

    • 结构化组织
    • SQL
    • 数据和关系都存在单独的表中
    • 数据操作语言、数据定义语言
    • 严格的一致性
    • 基础的事务

    NoSQL:

    • 不仅仅是数据
    • 没有固定的查询语言
    • 键值对存储、列存储、文档存储、图形数据库(社交关系)
    • 最终一致性
    • CAP 定理 和 BASE (异地多活)
    • 高性能、高可用、高扩展

大数据的 3V 和 3高:

3V 描述问题:

  • 海量 Volumn
  • 多样 Variety
  • 实时 Velocity

3高 对程序的要求:

  • 高并发
  • 高可扩
  • 高性能

NoSQL 的四大分类:

KV 键值对

文档型数据库(bson 格式和 json 一样)

MongoDB :

  • MongoDB 是一个基于分布式文件存储的数据库,C++ 编写,主要用来处理大量的文档
  • MongoDB 是一个介于关系型数据库和非关系型数据库中间的产品
  • MongoDB 是非关系型数据库中功能最丰富,最像关系型数据库的

列存储数据库

  • HBase
  • 分布式文件系统

图关系型数据库

存放关系,比如:朋友圈社交网络,广告推荐

Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第1张图片

分类 examples 应用场景 数据模型 优点 缺点
键值对(Key-Value) Redis、Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等 Key 指向 Value 的键值对,通常用 hash table 来实现 查找速度快 数据无结构化,通常只被当做字符串或者二进制数据
列存储数据库 HBase、Riak 分布式的文件系统 以列簇式存储,将同一列数据存放在一起 查找速度快,可扩展性强,更容易进行分布式扩展 功能相对局限
文档型数据库 CouchDB、MongoDB Web 应用(与 Key-Value 类似,Value 是结构化的,不同的是数据库能够了解 Value 的内容) Key-Value 对应的键值对,Value 为结构化数据 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 查询性能不高,而且缺乏统一的查询语句
图形数据库 Neo4J、InfoGrid、Infinite Graph 社交网络,推荐系统等,专注于构建关系图谱 图结构 利用图结构相关算法,比如最短路径寻址,N 度关系查找等 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案

Redis 入门

Redis = Remote Dictionary Server,即远程字典服务;
是一个开源的使用 ANSI C语言编写、支持网络可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API

是热门的 NoSQL 技术之一,也被称为结构化数据库

memcached一样,为了保证效率,数据都是缓存在内存中
区别是 Redis周期性地 把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave (主从) 同步

Redis 应用

  1. 内存存储、持久化,内存中是断电即失,所以说持久化很重要(rdbaof
  2. 效率高,可以用于高速缓存
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器、计数器(浏览器)

rdb
在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot);
实际操作过程是 fork() 一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储

aof
以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录
具体分析,可以参考 RDB 与 AOF 使用分析

Redis 特性

  1. 多样的数据类型
  2. 持久化
  3. 集群
  4. 事务

Windows 下安装 Redis

  1. Windows 版本 Redis 安装包连接:
    https://pan.baidu.com/s/1kgvccrEYZaEJTLixWp3L_w
    提取码:mj9a
    复制这段内容后打开百度网盘手机App,操作更方便哦

  2. 下载完成,在安装目录下解压缩,可以看到

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第2张图片

  3. 开启 Redis,双击 redis-server.exe 即可

    在这里可以看到 Redis 的版本号:3.2.100 64 bit;也可以看到 Redis 的默认端口号:6379
    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第3张图片

  4. 使用 Redis 客户端连接服务器,双击 redis-cli.exe 即可

    ping 后出现了 PONG,表示已经连接成功
    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第4张图片

Linux 安装 Redis

  1. 安装 CentOS 链接:CentOS 7 的下载链接
    提取码:5ep6
    复制这段内容后打开百度网盘手机App,操作更方便哦

  2. 安装 CentOS 教程可以看以下链接 安装 CentOS

  3. 下载安装包 Redis(linux版) 下载链接 ;然后通过 WSCP 移动到 CentOS 的 opt 目录下

  4. 解压缩,tar -zxvf redis-5.0.7.tar.gz;解压缩之后,可以在相应的目录下看到文件的存在 redis-5.0.7

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第5张图片
    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第6张图片

  5. cd redis-5.0.7 进入解压后的文件,可以看到对应的配置文件;

  6. 安装基本的配置环境 yum install gcc-c++

    中间可能需要输入 y,表示同意继续安装;
    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第7张图片

    之后可以通过 ggc -v ,查看是否安装成功

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第8张图片

  7. 之后可以输入 make 命令,等待它自己加载所需要的东西;可以看到如下结果

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第9张图片
    之后,再 make 一下

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第10张图片

  8. 最后,make install;可以看到所有的环境都可以了

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第11张图片

  9. redis 的默认安装路径是 /usr/local/bin

  10. 将 Redis 配置文件复制到我们当前目录

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第12张图片

  11. Redis 默认不是后台启动的,需要修改配置文件;daemonize no 改为 daemonize yes

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第13张图片

  12. 通过我们之前设置好的配置文件启动

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第14张图片

  13. 检查是否连接成功,并测试

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第15张图片

  14. 新开启一个虚拟机的连接,然后查看 Redis 的进程是否开启

    Redis 学习教程·一 —— NoSQL 概述以及 Redis 入门与安装_第16张图片

  15. 关闭 Redis

    1-14

  16. 再次查看进程是否存在
    2-14

Redis 学习教程

Redis 学习教程·二 —— Redis 的基本知识与 RedisKey 的基本命令

Redis 学习教程·三 —— Redis 的五大基本类型操作

Redis 学习教程·四 —— Redis 的三种特殊数据类型

Redis 学习教程·五 —— Redis 事务

Redis 学习教程·六 —— Redis 配置文件(redis.conf)详解

Redis 学习教程·七 —— Redis 持久化之 RDB 与 AOF 使用分析

Redis 学习教程·八 —— Redis 发布订阅

Redis 学习教程·九 —— Redis 主从复制

Redis 学习教程·十 —— Redis 缓存穿透、击穿和雪崩

你可能感兴趣的:(Java,开发,大数据,数据库,redis,NoSQL,CentOS)