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部署
RMP包安装
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

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
相关文章:
NoSQL数据库介绍+Redis部署
目录 一、NoSQL概述 1、数据的高并发读写 2、海量数据的高效率存储和访问 3、数据库的高扩展和高可用 二、NoSQL的类别 1、键值存储数据库 2、列存储数据库 3、文档型数据库 4、图形化数据库 三、分布式数据库中的CAP原理 1、传统的ACID 1)、A--原子性 …...
【mindspore学习】环境配置
本次实验搭配的环境是 CUDA 11.6 CUDNN v8.9.4 TensorRT-8.4.1.5 mindspore 2.1.0。 1、配置 Nvidia 显卡驱动 如果原来的主机已经安装了 nvidia 驱动,为避免版本的冲突,建议先清除掉旧的 nvidia驱动 sudo apt-get --purge remove nvidia* sudo apt…...
基于shell脚本对aliyun npm仓库(https://packages.aliyun.com)登录认证
文章目录 基于shell脚本对阿里云npm仓库(https://packages.aliyun.com)登录认证食用人群食用方式 基于shell脚本对阿里云npm仓库(https://packages.aliyun.com)登录认证 食用人群 由于一些安全的原因,某些企业可能会…...
K8s Pod 安全认知:从openshift SCC 到 PSP 弃用以及现在的 PSA
写在前面 简单整理,博文内容涉及: PSP 的由来PSA 的发展PSA 使用认知不涉及使用,用于了解 Pod 安全 API 资源理解不足小伙伴帮忙指正对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是…...
提高企业会计效率,选择Manager for Mac(企业会计软件)
作为一家企业,良好的财务管理是保持业务运转的关键。而选择一款适合自己企业的会计软件,能够帮助提高会计效率、减少错误和节约时间。在众多的选择中,Manager for Mac(企业会计软件)是一款值得考虑的优秀软件。 首先,Manager for…...
软考:中级软件设计师:信息系统的安全属性,对称加密和非对称加密,信息摘要,数字签名技术,数字信封与PGP
软考:中级软件设计师:信息系统的安全属性 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对未来更多的可能性 关于互联网大厂的笔试面试,都是需要细心准…...
Vue3中reactive响应式失效的问题
情景阐述 弹窗内部有一个挑选框,要通过请求接口获取挑选框下面可供选择的数据。 这是一个很简单的情境,我立刻有了自己的思路。如果实现搜索,数据较少可以直接用elementplus自带的filter。如果数据较多,就需要传val,…...
lamp
LAMP 环境 指的是在 Linux 操作系统中分别安装 Apache 网页服务器、MySQL 数据库服务器和 PHP 开发服务器,以及一些对应的扩展软件。AMP也支持win操作系统 (sccm 域升级版) LAMP架构是目前成熟的企业网站应用模式之一,指的是协同…...
LeetCode 周赛上分之旅 #42 当 LeetCode 考树上倍增,出题的趋势在变化吗
⭐️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越抽象,它能覆盖的问题域就越广,理解难度…...
Qt 自定义菜单 托盘菜单
托盘菜单实现:通过QSystemTrayIconQMenuQAction即可完美实现! 实现方式:createActions用于创建菜单、菜单项,translateActions用于设置文本、实现多语化,translateAccount用于设置用户空间配额。 void TrayMenu::createActions(…...
channel并发编程
不要通过共享内存通信,要通过通信共享内存。 channel是golang并发编程中一种重要的数据结构,用于多个goroutine之间进行通信。 我们通常可以把channel想象成一个传送带,将goroutine想象成传送带周边的人,一个传送带的上游放上物品…...
苹果新健康专利:利用 iPhone、Apple Watch 来分析佩戴者的呼吸情况
根据美国商标和专利局(USPTO)公示的清单,苹果获得了一项健康相关的技术专利,可以利用 iPhone、Apple Watch 来分析佩戴者的呼吸系统。 苹果在专利中概述了一种测量用户呼吸功能的系统,通过 iPhone 上的光学感测单元&am…...
数据分析基础-数据可视化02-不同数据类型的可视化概念及原则
将数据空间映射到颜色空间。 数据空间:连续或分类 数据可以被划分为两个主要的数据空间:连续数据和分类数据。这两种数据空间有不同的特点和适用的分析方法。 连续数据(Continuous Data): 连续数据是指可以在某个范…...
QT项目使用Qss的总结
什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制。QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少,可以使用的QSS属性也要少很多,并且并不是所有…...
suricata初体验+wireshark流量分析
目录 一、suricata介绍 1.下载安装 2.如何使用-攻击模拟 二、wireshark流量分析 1.wireshark过滤器使用 2.wireshark其他使用 一、suricata介绍 1.下载安装 通过官网下载suricata,根据官网步骤进行安装。 官网地址: https://documentation.wazuh.…...
机器学习:异常检测实战
文章目录 Anomaly Detection目录任务介绍数据集方法评估Baseline报告报告评价标准 Anomaly Detection 目录 任务介绍 无监督的异常检测 数据集 方法 autoencode 是否能够还原出原始类型图片,基于重构loss来判断是否正常 重构误差当作异常分数 评估 采用ROC和AUC…...
数据结构1
数据结构是计算机科学中存储和组织数据的一种方式,它定义了数据的表示方式和对数据进行操作的方法,常见的数据结构包括数组、栈、链表、队列、树、图等。 目录 一、常见的数据结构 1.数组 2.栈 3.队列 4.链表 5.树 6.图 一、常见的数据结构 1.数…...
自然语言处理学习笔记(七)————字典树效率改进
目录 1. 首字散列其余二分的字典树 2.双数组字典树 3.AC自动机(多模式匹配) (1)goto表 (2)output表 (3)fail表 4.基于双数组字典树的AC自动机 字典树的数据结构在以上的切分算法中已经很快了&#x…...
forEach和map有什么区别,使用场景?
forEach和map有什么区别,使用场景? 区别什么意思?forEach: 不直接改变原始数组,但可以在回调中更改原始数组。 区别 forEach 和 map 都是数组的常用方法,但它们有不同的目的和用法。下面是它们之间的主要区别以及各自…...
【Spring Boot】SpringBoot完整实现社交网站系统
一个完整的社交网站系统需要涉及到用户登录、发布动态、关注、评论、私信等各方面。这里提供一个简单的实现示例,供参考。 前端代码 前端使用Vue框架,以下是部分代码示例: 登录页: <template><div><input type…...
7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
