企业级Nosql数据库和Redis集群

news2025/1/7 18:19:45

一、关系数据库和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。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ant Design中Flex布局、Grid布局和Layout布局详解

好的,我们来更详细地探讨 Ant Design 中的 Flex布局、Grid布局 和 Layout布局 的特点、用法、适用场景,以及如何灵活运用它们来构建页面。下面将从各个方面进行更深入的分析,并提供具体的实例。 VueFlex布局实现响应式布局 1. Flex布局 概念…

基于FPGA的SNN脉冲神经网络之IM神经元verilog实现,包含testbench

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 vivado2019.2 3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频&#xff0…

健身房管理系统多身份

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

三甲医院等级评审八维数据分析应用(四)--数据质量管理篇

一、引言 1.1 研究背景与意义 在医疗卫生领域,医院评审是衡量医院综合实力、保障医疗服务质量的重要手段。其中,三甲评审作为我国医院评审体系中的最高级别,对医院的管理、医疗技术、服务质量等各方面都设定了严格标准。医务科作为医院医疗质量管理的核心部门,肩负着协调…

Solidity合约编写(一)

Solidity IDE地址:Remix - Ethereum IDE 点击进入后在contract文件夹下创建合约 合约代码如下: // SPDX-License-Identifier: MIT pragma solidity ^0.8.26;contract SimpleStorage{bool hasFavorNumtrue;uint256 favorNum5;string favorNums"fiv…

嵌入式系统(将软件嵌入到硬件里面)

目录 Linux起源 查看操作系统的版本 查看内核的版本: 内核系统架构 系统关机或重启命令 关机: 重启: linux下的软件安装 两种软件包管理机制: deb软件包分为两种: 软件包的管理工具:dpkg apt 1…

会员制电商创新:开源 AI 智能名片与 2+1 链动模式的协同赋能

摘要:本文聚焦于电商领域会员制的关键作用,深入探讨在传统交易模式向数字化转型过程中,如何借助开源 AI 智能名片以及 21 链动模式商城小程序,实现对会员数据的精准挖掘与高效利用,进而提升企业的营销效能与客户洞察能…

Day29 - 大模型RAG,检索增强生成

如何调用第三方大模型 阿里大模型 1. 获取百炼平台 api key 【阿里云】-【产品】-【人工智能与机器学习】-【大模型服务平台百炼】 2. 参考LangChain文档 https://python.langchain.com/docs/introduction/ 3. 连接阿里大模型 """1. 引入模型 "&quo…

谷粒商城项目125-spring整合high-level-client

新年快乐! 致2025年还在努力学习的你! 你已经很努力了,今晚就让自己好好休息一晚吧! 在后端中选用哪种elasticsearch客户端? elasticsearch可以通过9200或者9300端口进行操作 1)9300:TCP spring-data-elasticsearch:transport-…

c语言的文件操作与文件缓冲区

目录 C语言文件操作函数汇总 简单介绍文件 为什么使用文件 什么是文件 文件名 二进制文件和文本文件 流和标准流 流 标准流 文件指针 文件的打开和关闭 文件的顺序读写 顺序读写函数介绍 文件的随机读写 fseek ftell rewind 文件读取结束的判定 文件缓冲区 缓…

http源码分析

一、HttpURLConnection http连接池源码分析 二、HttpClient 连接池,每个路由最大连接数 三、OkHttp okhttp的连接池与socket连接

【工具整理】WIN换MAC机器使用工具整理

最近公司电脑升级,研发同学统一更换了 Mac Book Pro 笔记版电脑,整理一下安装了那些软件以及出处,分享记录下~ 知识库工具 1、语雀 网址:语雀,为每一个人提供优秀的文档和知识库工具 语雀 个人花园&…

【GUI-pyqt5】QWidget类

1. 描述 所有可视空间的基类是一个最简单的空白控件控件是用户界面的最小元素 接收各种事件(鼠标、键盘)绘制在桌面上,显示给用户看 每个控件都是矩形的,它们按z轴顺序排序控件由其父控件和前面的控件剪切没有父控件的控件&#…

SpringBoot Maven 项目 pom 中的 plugin 插件用法整理

把 SpringBoot Maven 项目打包成 jar 文件时,我们通常用到 spring-boot-maven-plugin 插件。 前面也介绍过,在 spring-boot-starter-parent POM 和 spring-boot-starter POM 中都有插件的管理,现在我们就撸一把构建元素中插件的用法。 一、…

springboot实战纪实-课程介绍

教程介绍 Spring Boot是由Pivotal团队提供的一套开源框架,可以简化spring应用的创建及部署。它提供了丰富的Spring模块化支持,可以帮助开发者更轻松快捷地构建出企业级应用。 Spring Boot通过自动配置功能,降低了复杂性,同时支持…

源代码编译安装X11及相关库、vim,配置vim(2)

一、编译安装vim 编译时的cofigure选项如下.只有上一步的X11的包安装全了(具体哪些是必须的,哪些是多余的没验证),configure才能认为X的库文件和头文件是可以用的 ./configure --prefixpwd/mybuild \--x-includes/path/to/X11/m…

直接插入排序、折半插入排序、2路插入排序、希尔排序

本篇是排序专栏博客的第一篇,主要探讨以 “插入” 为核心思想的排序算法该如何实现 文章目录 一、前言二、直接插入排序1. 算法思想与操作分析2. 代码实现version 1version 2 3. 复杂度分析 三、折半插入排序1. 算法思想与操作分析2. 代码实现3. 复杂度分析 四、2路…

Ansible之批量管理服务器

文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源,执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力:技术突破与应用前景 一、引言 在当今数字化时代,人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面,再到如今日益普及的语音交互,人们对于与机器沟通的便捷性和自然性有了更高的追求…

学生作业完成情况管理程序

网上看到的一个课程设计,正好练练手。 首先设计数据库 数据库有三张表,分别是班级表,学生表,作业成绩表。 学生表中外键关联班级表,作业成绩表中外键关联学生表。具体如下图所示 班级表 学生表学生表外键关联 …