当前位置: 首页 > news >正文

企业级Nosql数据库和Redis集群

一、关系数据库和Nosql数据库

      关系数据库

  • 定义:关系数据库是建立在关系模型基础上的数据库。它使用表格(关系)来存储数据,通过行和列的形式组织信息。例如,一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级” 等列,每一行代表一个学生的具体信息。
  • NoSQL 数据库
  • 定义:NoSQL(Not Only SQL)数据库是一种非关系型数据库,它不依赖于传统的关系模型和 SQL 语言来处理数据。NoSQL 数据库主要用于处理大规模、高并发、分布式的数据存储和访问需求。
比较项目关系数据库NoSQL 数据库
数据模型以表格形式组织数据,通过行和列存储,有主键和外键来维护关系多种模型,包括键 - 值存储、文档存储、列族存储、图形存储等
数据操作语言使用 SQL 进行数据定义、查询、更新和删除操作没有统一标准语言,不同类型的 NoSQL 数据库有各自的查询语言,如 MongoDB 的类似 JSON 的语法、Neo4j 的 Cypher 语言等
数据一致性通过事务处理机制保证强一致性,严格的事务保证一组操作要么全部成功要么全部失败部分 NoSQL 数据库为了高可用性和高性能可能会牺牲一定的数据一致性,数据更新可能不会立即在所有节点同步
数据完整性有成熟的完整性约束,如主键约束、外键约束、非空约束等确保数据质量完整性约束相对较弱,不过部分数据库也有自己的验证机制
扩展性在处理大规模、高并发数据时可能出现性能瓶颈,扩展相对复杂具有高可扩展性,能通过添加服务器节点轻松扩展存储和处理能力,适合处理海量数据
性能和并发在复杂查询和关联操作方面有优势,但在高并发读写场景下可能性能下降高性能和高并发,简单的数据结构(如键 - 值存储)能快速处理读写操作,适用于缓存等场景
数据灵活性数据模型相对固定,对于复杂的非结构化数据处理较困难灵活的数据模型,能适应结构化、半结构化和非结构化数据,如文档存储可灵活处理各种内容
技术成熟度有大量成熟的数据库管理系统,如 Oracle、MySQL、SQL Server 等,工具支持丰富技术不断发展,部分 NoSQL 数据库相对较新,生态系统和工具支持在不断完善中
典型应用场景适合数据一致性要求高、事务处理频繁的系统,如银行系统、企业资源规划(ERP)系统适合大数据、高并发、分布式存储场景,如物联网系统、社交媒体平台、缓存系统等

二、Remote Dictionary Server

1.什么是redis

Redis(Remote Dictionary Server)是一个开源的、高性能的键 - 值(key - value)存储数据库,通常被归类为 NoSQL 数据库。

2.redis特性

  • 速度极快:Redis 将数据存储在内存中,内存的读写速度比磁盘快得多。这使得 Redis 能够在极短的时间内处理大量的读写请求。例如,在一个高并发的电商系统中,Redis 可以快速地查询商品库存信息,响应时间可以达到亚毫秒级。
  • 单线程架构(主要部分):Redis 的核心部分是单线程的,这避免了多线程的上下文切换成本。它通过高效的事件循环(I/O 多路复用)机制来处理多个客户端的请求。例如,即使有数千个客户端同时向 Redis 发送请求,它也能高效地处理,不会因为线程切换而导致性能下,

3.应用场景 

  • 缓存:这是 Redis 最常见的应用场景之一。可以将经常访问的数据(如数据库查询结果、网页内容等)存储在 Redis 中。当客户端再次请求相同的数据时,直接从 Redis 中获取,而不是从较慢的数据源(如数据库或文件系统)中获取,大大提高了系统的响应速度。例如,一个新闻网站可以将热门新闻文章的内容缓存到 Redis 中。
  • 消息队列:利用 Redis 的列表(List)数据结构可以实现简单的消息队列。生产者将消息添加到列表的一端,消费者从列表的另一端取出消息进行处理。例如,在一个分布式系统中,不同模块之间的异步通信可以通过 Redis 消息队列来实现。
  • 计数器:可以使用 Redis 的原子操作来实现计数器功能。例如,统计网站的访问次数、文章的点赞数等。由于 Redis 的操作是原子性的,所以在高并发环境下也能保证计数的准确性。
  • 排行榜:通过有序集合(Sorted Set)可以轻松地实现排行榜功能。例如,游戏中的玩家分数排行榜、电商平台的商品销量排行榜等,能够快速地更新排名并查询排名信息。

三、Redis安装

3.1 rpm包安装

dnf install redis -y

3.2源码安装

安装编译工具

执行编译命令

启动redis

编辑配置文件

 

其他主机安装

 

四、redis的主从复制

4.1 环境配置

R2   master

R1   slave

R3   slave

4.2 配置主从同步

1.修改master节点的配置文件

2.配置slave节点

3.测试

master

slave

五、redis哨兵

5.1什么是 Redis 哨兵(Sentinel)

  • Redis 哨兵是 Redis 高可用性(HA)解决方案的一个重要组件。它主要用于监控 Redis 主从节点的状态,在主节点出现故障时自动进行故障转移,将从节点提升为新的主节点,从而保证 Redis 服务的持续可用性。

5.2工作原理

  • 监控(Monitoring)
    • 哨兵会定期(默认每 1 秒)向 Redis 主节点、从节点发送心跳(PING)命令,来检查它们是否正常运行。如果在配置的时间范围内(如 down - after - milliseconds 参数指定的时间)没有收到节点的有效响应,就会将该节点标记为 “主观下线(Subjectively Down,SDOWN)”。
  • 通知(Notification)
    • 当一个哨兵将某个节点标记为 SDOWN 后,它会向其他哨兵发送消息,告知该节点可能出现故障。当多个(根据配置的 quorum 参数,例如多数派)哨兵都认为一个主节点下线时,这个主节点就会被标记为 “客观下线(Objectively Down,ODOWN)”。
  • 故障转移(Failover)
    • 一旦主节点被标记为 ODOWN,哨兵们就会协商选举出一个哨兵来执行故障转移操作。这个当选的哨兵会从存活的从节点中选择一个合适的节点,将其提升为新的主节点。然后它会通知其他从节点,让它们成为新主节点的从节点,并且更新相关的配置。
  • 配置提供者(Configuration Provider)
    • 哨兵会自动发现 Redis 的主从节点,并维护一个关于它们的配置信息列表。客户端可以连接到哨兵来获取当前 Redis 主节点的地址等配置信息,这样客户端就不需要手动维护主节点的信息,并且在主节点发生故障转移后,能够自动更新连接的主节点

5.3哨兵实验过程 

master节点

slave

启动

六、Redis Cluster

6.1部署redis cluster

在所有主机中

yum install redis -y

vim /etc/redis/redis.conf

6.2创建redis-cluster

测试

写动作到了第二个master里面

120主机可以写

6.3集群扩容

现在是三组三从

将124添加到120的集群中

但没槽位不能存数据

分享槽位

添加slave

6.4删除主机

1。

2。

相关文章:

企业级Nosql数据库和Redis集群

一、关系数据库和Nosql数据库 关系数据库 定义:关系数据库是建立在关系模型基础上的数据库。它使用表格(关系)来存储数据,通过行和列的形式组织信息。例如,一个简单的学生信息表可能有 “学号”“姓名”“年龄”“班级…...

代码优化方案

① 引入清晰的中间变量 即如果判断条件很复杂的情况下,最好的方式是引入清晰的中间变量。 isValid val > someConstant; isAllowed condition2 || condition3; isSecure condition4 && !condition5;// 有了描述性变量,我们就不需要再记住…...

C++直接内存管理new和delete

0、前言 C语言定义了两个运算符来分配和释放动态内存。运算符new分配内存,delete释放new分配的内存。 1、new动态内存的分配 1.1、new动态分配和初始化对象 1)、new内存分配 在自由的空间分配的内存是无名的,new无法为其分配的对象…...

CPU过剩是什么意思? 有什么对电脑的影响吗?如何确认CPU有没有过剩

CPU 过剩通常是指计算机系统中 CPU 的性能远远超出了当前运行任务的需求。以下从产生原因和对电脑的影响为你详细介绍: 产生原因 硬件升级与软件发展不同步:用户为追求高性能提前升级了 CPU,而当前的软件应用程序在算法和功能上没有太大突破&…...

Git的简单介绍与如何安装Git

文章目录 前言一、初始git1.git是什么2.为什么要使用git(出现的问题)3.git是如何解决问题的 二、git的安装与卸载1.centos系统2.ubuntu系统3.windows 三、搭建git本地环境1.创建git本地仓库2.配置用户信息 总结 前言 本文简单引入git的相关内容。 一、初始git 1.git是什么 g…...

Linux vi/vim 编辑器:功能强大的文本处理工具

Linux vi/vim 编辑器:功能强大的文本处理工具 引言 Linux 系统中的 vi/vim 是一种功能强大的文本编辑器,它广泛应用于程序员、系统管理员和其他需要处理文本文件的用户群体中。vi 是 visual interface 的缩写,而 vim 则是 vi improved 的缩…...

计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

正则表达式 - 使用总结

正则表达式 - 使用总结 正则表达式(Regular Expression,简称Regex)是一种强大的文本处理工具,它允许我们通过特定的模式(pattern)来搜索、匹配和操作字符串。在编程、数据分析和文本处理等领域,正则表达式发挥着非常重要的作用。本文将总结正则表达式的基本概念、使用方…...

性能测试04|JMeter:连接数据库、逻辑控制器、定时器

目录 一、连接数据库 1、使用场景 2、直连数据库的关键配置 3、案例 ​编辑 二、逻辑控制器 1、if控制器 2、循环控制器 3、ForEach控制器 三、定时器 1、同步定时器 2、常数吞吐量定时器(用的少,了解即可) 3、固定定时器 一、连…...

力扣刷题:二叉树OJ篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.单值二叉树(1)题目描…...

【跨域】解决SpringBoot和openresty跨域问题

平时后端只需要写一个配置类就可以解决跨域但是最近的新项目死活不行 先说结论 项目中的权限校验(也可以是其他的)拦截器优先级高于跨域拦截器导致跨域处理失效 解决办法 1.在addCorsMappings上增加 Order(value -100)// 跨域优先级最高 2.nginx放行OPTIONS请求 SpringBo…...

下载ffmpeg执行文件

打开网址:Download FFmpeg 按下面步骤操作 解压文件就可以看到ffmpeg的执行文件了,需要通过命令行进行使用: ffmpeg命令行使用参考: ffmpeg 常用命令-CSDN博客...

SQLite 实际案例研究与创新应用

SQLite 作为一种强大而简单的数据库实现,应用于各类场景,从移动应用到物联网设备,再到边缘计算。在本章中,我们将通过几个典型案例,探讨 SQLite 如何在实际中解决复杂问题,并研究其创新应用的可能性。 案例…...

C语言 递归编程练习

1.将参数字符串中的字符反向排列,不是逆序打印。 要求:不能使用C函数库中的字符串操作函数。 比如: char arr[] "abcdef"; 逆序之后数组的内容变成:fedcba 1.非函数实现(循环) 2.用递归方法…...

【HDU】1089 A+B for Input-Output Practice (I)

1089 AB for Input-Output Practice (I):以EOF结尾的输入 Problem Description Your task is to Calculate a b. Too easy?! Of course! I specially designed the problem for acm beginners. You must have found that some problems have the same titles with this one,…...

[python3]Excel解析库-xlwings

xlwings 是一个强大的 Python 库,它允许你直接与 Microsoft Excel 进行交互。通过 xlwings,你可以轻松地在 Python 脚本或 Jupyter Notebook 中读取、写入和操作 Excel 文件,而无需手动打开 Excel 应用程序。此外,xlwings 还支持将…...

[python3]Excel解析库-xlutils

xlutils 是一组用于处理 Excel 文件的 Python 库,它实际上是 xlrd 和 xlwt 的扩展,提供了额外的功能来操作 Excel 文件。xlutils 主要由三个部分组成:xlutils.copy、xlutils.filter 和 xlutils.view,它们分别用于复制和修改现有 E…...

React中的合成事件

合成事件与原生事件 区别: 1. 命名不一样,原生用纯小写方式,react用小驼峰的方式 原生:onclick React的:onClick 2. 事件处理函数的写法不一样 原生的是传入一个字符串,react写法传入一个回调函数 3.…...

记录一次电脑被入侵用来挖矿的过程(Trojan、Miner、Hack、turminoob)

文章目录 0、总结1、背景2、端倪3、有个微软的系统更新,就想着更新看看(能否冲掉问题)4、更新没成功,自动重启电脑5、风险文件(好家伙命名还挺规范,一看名字就知道出问题了)6、开机有一些注册表…...

牛客网刷题 ——C语言初阶(5操作符)——BC107 矩阵转置

1.题目描述:BC107 矩阵转置 牛客网OJ链接 KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。 输入描述: 第一行包含两个整数n和m,表示一个矩阵包含n行m列…...

【调试记录】在CARLA中插入可以播放视频的组件

〇、问题描述 做实验验证的时候,需要在CARLA仿真环境中添加一个可以播放视频的功能,查了很多现有的实验,基本都是插入图像,而对于插入视频,实现的方法就很麻烦了。一开始考虑的是直接用射影变换进行叠加,计…...

【Linux】RPMSG通讯协议介绍

RPMSG协议通讯协议介绍 RPMSG,全称Remote processor Messaging。是一种核间通讯协议。在Linux Kernel中,已经内置了RPMSG。 Linux RPMSG基于共享内存,利用RPMSG可以高效的实现核间通信。比如Linux与FreeRTOS、Linux与Android,都可…...

Branch-Solve-Merge Improves Large Language Model Evaluation and Generation

题目 分支-求解-合并改进了大型语言模型的评估和生成 摘要 大型语言模型(LLM)经常用于多方面的语言生成和评估任务,这些任务涉及满足复杂的用户约束或考虑多个方面和标准。然而,由于模型缺乏一致性,无法计划和分解问题,他们的表现…...

SqlSugar-文章目录

SqlSugar学习总结1(基础操作) SqlSugar学习总结2(主从复制-数据库配置) SqlSugar学习总结3(主从复制-读写分离) SqlSugar学习总结4(树形递归查询) SqlSugar学习总结5(映射)...

如何理解RDD,以及RDD的五大特性和五大特点。

RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。 Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区…...

umd格式

umd格式是啥? umd格式是一种通用模块,他同时支持AMD、CJS、ESM模块和全局变量的方式 umd格式打包后的基本代码结构如下: (function (root, factory) {if (typeof define function && define.amd) {// AMDdefine([dependency], factory);} el…...

node.js之---内置模块

在 Node.js 中,模块系统是基于 CommonJS 模块规范 的,这使得开发者可以将代码分成多个独立的模块进行管理。Node.js 提供了很多 内置模块(也称为 核心模块),这些模块可以直接在代码中使用,而无需安装额外的…...

linux下安装达梦数据库v8详解

目录 操作系统、数据库 1、下载达梦数据库 2、安装前准备 2.1、建立数据库用户和组 2.2、修改文件打开最大数 2.3、挂载镜像 2.4、新建安装目录 3、数据库安装 4、配置环境变量 5、初始化数据库实例 6、注册服务 7、使用数据库 8、卸载数据库 9、多实例管理 10、…...

深入理解 Android 中的 ApplicationInfo

深入理解 Android 中的 ApplicationInfo 在 Android 开发中,ApplicationInfo 是一个非常重要的类,它包含了关于应用程序的元信息。这些信息通常是从 AndroidManifest.xml 文件中提取的,开发者可以通过 ApplicationInfo 类来获取和操作这些信…...

【vLLM】使用PagedAttention 进行大型语言模型的高效内存管理

重磅推荐专栏: 《大模型AIGC》 《课程大纲》 《知识星球》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经…...

STLG_01_12_程序设计C语言 - 联合体和枚举类型

在C语言中,联合体(Union)和枚举类型(Enum)是两种不同的数据结构,它们各自有特定的用途和特点。 联合体(Union) 联合体是一种数据结构,允许在相同的内存位置存储不同的数…...

ThreadLocal详解:深入探讨导致JVM内存泄露的原因及预防措施

引言 ThreadLocal 是Java提供的一个线程局部变量工具,它使得每个线程都可以拥有自己的变量副本,而这些副本对于其他线程而言是不可见的。这在多线程编程中非常有用,因为它可以避免共享资源带来的同步问题。然而,如果使用不当&…...

【FlutterDart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100)

上效果 预期的是通过拖动一条边界线改变窗口大小,类似vscode里拖动效果。这个是简单的拖动实现 上代码: import package:flutter/material.dart;class MyDraggableViewDemo extends StatelessWidget {const MyDraggableViewDemo({super.key});override…...

【FlutterDart】 拖动边界线改变列宽并且有边界高亮和鼠标效果(12 /100)

【Flutter&Dart】 拖动改变 widget 的窗口尺寸大小GestureDetector~简单实现(10 /100) 【Flutter&Dart】 拖动边界线改变列宽类似 vscode 那种拖动改变编辑框窗口大小(11 /100) 上效果 对比一下vscode的效果&…...

鸿蒙应用开发(2)

鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发(1)-CSDN博客 没看过前两篇的,建议请先看上面。 如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...

js -动态主题色

学习参考来源: 峰华大佬:https://www.bilibili.com/video/BV1E64y1Z79Q/?spm_id_from333.1391.0.0&vd_sourcea0f31140205458776d3a4ef477cd6561 实际效果: http://www.qingkong.zone/laboratory?typetheme-color 前言 本文内容可结合上…...

connect to host github.com port 22: Connection timed out 的解决方法

原因是 Github 被 GFW 屏蔽了。 Windows 系统,打开 C:\Windows\System32\drivers\etc,复制其中的 hosts 文件至桌面,用文本编辑器或者其他工具打开。 复制以下内容进去: 140.82.114.4 github.com 151.101.1.6 github.global.ss…...

AI 角色扮演法的深度剖析与实践

📢📢📢 大家好,我是云楼Yunlord,CSDN博客之星人工智能领域前三名,多年人工智能学习工作经验,一位兴趣稀奇古怪的【人工智能领域博主】!!!😜&#…...

ansible-动态inventory及内置函数

一. 简述: 关于inventory的基本用法可以参考上一篇文章:ansible-inventory定义-CSDN博客 在实际线上环境中,单纯的靠配置文件管理,是一件很麻烦的事情(比如一致性问题),特别是规模较大的场景下,会有大量主…...

【每日学点鸿蒙知识】广告ID、NFC手机充值、CSS支持语法、PC与模拟器交互、SO热更新等

1、HamonyOS 样机获取成功返回Oaid为00000000-0000-0000-0000-000000000000? 请求授权时需要触发动态授权弹窗,看一下是不是没有触发授权弹窗。 可以参考以下代码以及文档: // ets import identifier from ohos.identifier.oaid; import hilog from oh…...

MySQL 【多表查询】

一 . 概述 多表关系: 一对多(多对一) , 多对多 ,一对一 1) 一对一 案例: 用户 与 用户详情的关系 关系: 一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另 一张表…...

第08章 存储管理(二)

一、EXT4文件系统详解 1.1 简介 1.1.1 课程引入 1.1.2 名词解释 1.1.3 类型 索引(index)文件系统 1.1.4 系统限制 1.1.5 图示 1.1.6 名词 1.2 inode(index node 索引节点) 1.3 block(块 文件内容) 二、文件链接 2.1 符号连接(软连接) 2.…...

win10搭建zephyr开发环境

搭建环境基于 zephyr官方文档 基于官方文档一步一步走很快就可以搞定 一、安装chocolatey 打开官网 https://community.chocolatey.org/courses/installation/installing?methodinstall-from-powershell-v3 1、用管理员身份打开PowerShell (1)执行 …...

常见框架漏洞

一:ThinkPhp 1.搭建环境,访问 2.访问路径,进行远程代码执行 二:struts2 1.搭建环境进行 2.使用工具进行检测 三:Spring 1.搭建环境进行访问并进行抓包 2.然后抓取数据包,使用PATCH请求来修改 3.进入容器…...

党员学习交流平台

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…...

公司资产网站

本文结尾处获取源码。 本文结尾处获取源码。 本文结尾处获取源码。 一、相关技术 后端:Java、JavaWeb / Springboot。前端:Vue、HTML / CSS / Javascript 等。数据库:MySQL 二、相关软件(列出的软件其一均可运行) I…...

线上go内存泄漏分析实战

背景 最近经常发现web服务内存占用持续缓慢增高,从图像上看是基本持续递增,但偶尔也有下降趋势(不会下降很明显),对比30天以前没那么高内存占用,最近30天内存占用变化且无明显规律。WEB服务框架是echo框架&…...

UE5AI感知组件

官方解释: AI感知系统为Pawn提供了一种从环境中接收数据的方式,例如噪音的来源、AI是否遭到破坏、或AI是否看到了什么。 AI感知组件(AIPerception Component)是用于实现游戏中的非玩家角色(NPC)对环境和其…...

12306购票如何做到限流的,什么技术方案,mq吗,提示排队过多,请稍微重试,提示库存不足。具体实现细节是怎么样的

12306(中国铁路客户服务中心)的购票系统是一个典型的高并发、高流量的系统。在春运和节假日等高峰期间,购票需求量极大,用户的请求频繁且集中,系统必须通过多种技术手段来进行 限流 和 负载均衡,确保购票服…...

[irisctf 2025] kittycrypt knutsacque

作了俩题还有一个不对。 KittyCrypt 题目给了加密代码,样例和密文。密钥通过样例求出。 package mainimport ("crypto/rand""encoding/hex""encoding/json""fmt""math/big""os""strings"…...