NoSQL数据库介绍+Redis部署

目录

一、NoSQL概述

1、数据的高并发读写

2、海量数据的高效率存储和访问

3、数据库的高扩展和高可用

二、NoSQL的类别

1、键值存储数据库

2、列存储数据库

3、文档型数据库

4、图形化数据库

三、分布式数据库中的CAP原理

1、传统的ACID

1)、A--原子性

2)、C--一致性

3)、I--隔离性

4)、D--持久性

2、CAP

四、Redis概述

五、Redis特点

六、Redis部署


 

一、NoSQL概述

NoSQL指非关系型的数据库,它可以作为关系型数据库的良好补充,在Web2.0网站的兴起,非关系型的数据库现在成为了一个极其热门的新领域,非关系数据库产品的发展非常迅速。传统的关系型数据库只能存储结构化数据,对于非结构化的数据支持不够完善。NoSQL数 据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。例如

1、数据的高并发读写

网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所有基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。例如网站的实时统计在线用户状态,记录热门帖子的点击次数。

2、海量数据的高效率存储和访问

像阿里、腾讯等大型网站的用户登录系统,在一张海量的关系数据库,使用SQL语句查找效率是极其低下的。

3、数据库的高扩展和高可用

基于Web网站的架构中,数据库是最难进行横向扩展的,当一个网页的系统的用户量不断增大,对数据库进行升级和扩展时,事很困难的,往往只有停机进行升级维护和数据迁移等。因此需要数据库具有高扩展和高可用性。

NoSQL数据库主要应用场景:

1). 数据模型比较简单

2). 需要灵活性更强的IT系统

3). 对数据库性能要求较高

4). 不需要高度的数据一致性

5). 对于给定key,比较容易映射复杂的环境

6). 取最新的N个数据(如排行榜)

7). 数据缓存

二、NoSQL的类别

1、键值存储数据库

这一种数据库类型主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。key/value模型对于IT系统来说优势在于简单,容易部署。

应用:内容缓存,主要用于处理大量数据高访问负载。

优点:快速查询。

缺点:存储的数据缺少结构化。

2、列存储数据库

这部分数据库通常事用来对分布式存储的海量数据,键依然存在,但是它们的特点是指向了多个列。

应用:分布式文件。

优点:查询速度快,可扩展性强,更容易进行分布式扩展。

缺点:功能相对局限。

3、文档型数据库

该类型的数据库模型是版本化的文档,半结构化的文档以特定的格式存储,入JSON。文档类型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,而且文档型数据库比键值数据库的查询效率更高。

应用:Web应用。

优势:数据结构要求不严格。

缺点:查询性能不高,且缺乏统一的查询语句。

4、图形化数据库

图形结构的数据同其他行列以及刚性结构的SQL数据不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上,NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要定制数据模型。许多NoSQL数据库都有REST格式的数据接口或者查询API。

应用:社交网络。

优点:利用图结构相关算法。

缺点:需要整个图做计算才能得出结果,不容易做分布式的集群方案。

三、分布式数据库中的CAP原理

1、传统的ACID

关系型数据库遵循ACID规则,事务(transaction)

1)、A--原子性

指事物里所有操作要么都成功,要么都失败。事物的成功条件是事物中所有操作都成功,如果只要有其中一个操作失败,整个事物都失败,需要回滚。

2)、C--一致性

指数据库要一直处于一直的状态,事物的运行不会该百年数据库原本的一致性约束。

3)、I--隔离性

指并发的事物之间互不影响,如果一个事物要访问数据正在被另一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。

4)、D--持久性

指事物一旦提交,它所作的修改将会永久的保存在数据库中,即使宕机也不会丢失。

2、CAP

CAP理论是指在分布式存储系统中,最多能实现上面得两点,由于当前网络硬件存在延迟丢包等问题,所以分区容忍性是我们必须要实现得,因此我们只能在一致性和可用性进行权衡,没有NoSQL系统能同时保证这三点。

C--强一致性、A--可用性、P--分区容错性

CA--单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。如传统的Oracle数据库。

AP-- 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些如,大多数网站架构的选择。

CP--满足一致性,分区容忍必的系统,通常性能不是特别高,如Redis、Mongodb

注:在做分布式架构的时候必须做出取舍。 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,最多只能同时较好的满足两个。因此一致性和可用性之间取一个平衡。对于大多数web应用,并不需要一致性。

四、Redis概述

Redis(REmote D Ictionary Server 远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD 协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行,并支持持久化的NoSQL数据库, 是当前最热门的NoSQL数据库之一,也被人们称为数据结构服务器。

Redis是一个开源的高性能键值对(Key-Value)数据库。它通过提供多种键值数据类型来适应不同场景 下的存储需求,目前为止Redis支持的键值数据类型如下:

字符串类型、散列类型、列表类型、集合类型、有序集合类型。

五、Redis特点

  • 性能极高:Redis 读的速度是 110000 次 /s,写的速度是 81000 次 /s 。
  • 丰富的数据类型:Redis 支持二进制案例的 String,List,Hash,Set及 ZSet 数据类型操作。
  • 原子性:Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作 是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
  • 数据持久化:可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis 提供的API支持:C、C++、C#、Clojure、Java、JavaScript、Lua、PHP、Python、Ruby、 Go、Scala、Perl等多种语言。
  • 其他特性:Redis 还支持 publish/subscribe 通知,key 过期等特性。

六、Redis部署

RPM包安装

1)获取安装包

[root@master ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2)安装

[root@master ~]# yum install redis

3)启动redis服务器

[root@master ~]# systemctl start redis

4)查看redis服务器状态

[root@master ~]# systemctl status redis

99ca85eb77184d67a1fbc80600a2e9f0.png

 5)查看端口

注:redis的默认端口为6379

#方法一
[root@master ~]# netstat -lnupt | grep :6379
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      1991/redis-server 1 
#方法二
[root@master ~]# ss -lnupt | grep :6379
tcp    LISTEN     0      128    127.0.0.1:6379                  *:*                   users:(("redis-server",pid=1991,fd=4))
#方法三
[root@master ~]# yum install lsof   #需要先安装lsof
[root@master ~]# lsof -i tcp:6379
COMMAND    PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
redis-ser 1991 redis    4u  IPv4  22990      0t0  TCP localhost:6379 (LISTEN)

6)连接

[root@master ~]# redis-cli -p 6379
127.0.0.1:6379> ping #验证 出现PONG说明连接成功了
PONG

7)退出

127.0.0.1:6379> quit #或者exit

8)关闭服务

root@master ~]# redis-cli shutdown
[root@master ~]# ps -ef | grep redis  #进行查看是否关闭

也可以在服务器里面关闭

127.0.0.1:6379> shutdown

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/116548.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java版本工程管理系统源码企业工程项目管理系统简介

一、立项管理 1、招标立项申请 功能点:招标类项目立项申请入口,用户可以保存为草稿,提交。 2、非招标立项申请 功能点:非招标立项申请入口、用户可以保存为草稿、提交。 3、采购立项列表 功能点:对草稿进行编辑&#x…

大数据专业毕业能从事什么工作

大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处理,以提供更好的用户体验,优化库存降低成本预测需求。 大数据开发做什么? 大数据开发分两类,编写Hadoop、Spa…

自然语言处理的多行业应用

在我们小时候,甚至是我们会走路或说话之前,就已经在察觉周围发出的声音了。我们倾听其他人发出的声响和声音。我们将声音组合成有意义的词语,例如“母亲”和“门”,并学习解读周围人的面部表情,以加深我们对词组的理解…

Linux 指令心法(四)`touch` 创建一个新的空文件

文章目录 命令的概述和用途命令的用法命令行选项和参数的详细说明命令的示例命令的注意事项或提示 命令的概述和用途 touch 是一个用于在 Linux 和 Unix 系统中创建空文件或更改现有文件的访问和修改时间的命令。如果指定的文件不存在,touch会创建一个新的空文件&a…

国产自主可控C++工业软件可视化图形架构源码

关于国产自主代替的问题是当前热点,尤其是工业软件领域。 “一个功能强大的全自主C跨平台图形可视化架构对开发自主可控工业基础软件至关重要!” 作为全球领先的C工业基础图形可视化软件提供商,UCanCode软件有自己的思考,我们认…

linux C编程 获取系统时间

1.clock_gettime #include<time.h> int clock_gettime(clockid_t clk_id,struct timespec *tp); struct timespec {time_t tv_sec; /* 秒*/long tv_nsec; /* 纳秒*/ }clk_id : CLOCK_BOOTTIME&#xff0c;以系统启动时间为时间原点的时间体系&#xff0c;不受其它因素的…

青翼科技基于VITA57.1的16路数据收发处理平台产品手册

FMC211是一款基于VITA57.1标准规范的实现16路LVDS数据采集、1路光纤数据收发处理FMC子卡模块。 该板卡支持2路CVBS&#xff08;复合视频&#xff09;视频输入&#xff0c;能够自动检测标准的模拟基带电视信号&#xff0c;并将其转变为8位ITU-R.656接口信号或者4:2:2分量视频信…

Java 大厂八股文面试专题-设计模式 工厂方法模式、策略模式、责任链模式

面试专题-设计模式 前言 在平时的开发中&#xff0c;涉及到设计模式的有两块内容&#xff0c;第一个是我们平时使用的框架&#xff08;比如spring、mybatis等&#xff09;&#xff0c;第二个是我们自己开发业务使用的设计模式。 面试官一般比较关心的是你在开发过程中&#xff…

Opencv-C++笔记 (18) : 轮廓和凸包

文章目录 一、轮廓findContours发现轮廓drawContours绘制轮廓代码 二.几何及特性概括——凸包(Convex Hull)凸包概念凸包扫描算法介绍——Graham扫描算法 相关API介绍程序示例轮廓集合及特性性概括——轮廓周围绘制矩形框和圆形相关理论介绍轮廓周围绘制矩形 -API绘制步骤程序实…

Java异常处理

Java内置了一套异常处理机制&#xff0c;总是使用异常来表示错误。一个健壮的程序必须处理各种各样的错误。所谓错误&#xff0c;就是程序调用某个函数的时候&#xff0c;如果失败了&#xff0c;就表示出错 异常是一种class&#xff0c;因此它本身带有类型信息。异常可以在任何…

【K8S系列】深入解析k8s网络插件—Cilium

序言 做一件事并不难&#xff0c;难的是在于坚持。坚持一下也不难&#xff0c;难的是坚持到底。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记论点蓝色&#xff1a;用来标记论点 在现代容器化应用程序的世界中…

深入理解 JVM 之——Java 内存区域与溢出异常

更好的阅读体验 \huge{\color{red}{更好的阅读体验}} 更好的阅读体验 本篇为深入理解 Java 虚拟机第二章内容&#xff0c;推荐在学习前先掌握基础的 Linux 操作、编译原理、计算机组成原理等计算机基础以及扎实的 C/C 功底。 该系列的 GitHub 仓库&#xff1a;https://github…

Power View

界面 切换可视化效果 对于已经上传到透视表的数据&#xff0c;选择power view&#xff0c;形成表格后。

国标视频云服务EasyGBS国标视频平台迁移服务器后无法启动的问题解决方法

国标视频云服务EasyGBS支持设备/平台通过国标GB28181协议注册接入&#xff0c;并能实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强&#xff0c;支持将接入的视频流进行全终端、全平台分发&#xff0c;分发的视频…

RT-Thread 线程管理(二)

系统线程 系统线程是指由系统创建的线程&#xff0c;用户线程是由用户程序调用线程管理接口创建的线程&#xff0c;在 RT-Thread 内核中的系统线程有空闲线程和主线程。 空闲线程 空闲线程&#xff08;idle&#xff09;是系统创建的最低优先级的线程&#xff0c;线程状态永远…

【MySQL】基础语法总结

MySQL 基础语句 一、DDL 数据库定义语言 1.1CREATE 创建 1.1.1 创建数据库 语法结构 CREATE DATABASE database_name;示例 CREATE DATABASE demo;1.1.2 创建表 语法结构 CREATE TABLE 表名 (列1 数据类型,列2 数据类型,... );示例 CREATE TABLE new_user (id INT PRIMARY KE…

JVM解密: 解构类加载与GC垃圾回收机制

文章目录 一. JVM内存划分二. 类加载机制1. 类加载过程2. 双亲委派模型 三. GC垃圾回收机制1. 找到需要回收的内存1.1 哪些内存需要回收&#xff1f;1.2 基于引用计数找垃圾(Java不采取该方案)1.3 基于可达性分析找垃圾(Java采取方案) 2. 垃圾回收算法2.1 标记-清除算法2.2 标记…

云服务器利用Docker搭建sqli-labs靶场环境

一、安装宝塔面板 使用xshell、electerm、SecureCRT等远程终端连接登陆上云服务器&#xff0c;在Linux宝塔面板使用脚本安装 安装后&#xff0c;如下图&#xff1a;按照提示&#xff0c;在云服务器防火墙/安全组放行Linux宝塔面板的端口 在浏览器打开上述网址&#xff0c;登…

基于微信小程序的汽车租赁系统的设计与实现ljx7y

汽车租赁系统&#xff0c;主要包括管理员、用户二个权限角色&#xff0c;对于用户角色不同&#xff0c;所使用的功能模块相应不同。本文从管理员、用户的功能要求出发&#xff0c;汽车租赁系统系统中的功能模块主要是实现管理员后端&#xff1b;首页、个人中心、汽车品牌管理、…

QEMU 仿真RISC-V freeRTOS 程序

1. 安裝RISC-V 仿真環境 --QEMU 安裝包下載地址: https://www.qemu.org/ 安裝命令及安裝成功效果如下所示, target-list 設定爲riscv32-softmmu, $ cat ~/project/qemu-8.0.4/install.sh sudo apt-get install libglib2.0-dev sudo apt-get install libpixman-1-dev ./co…