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

企业级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。


http://www.kler.cn/a/470927.html

相关文章:

  • 加速物联网HMI革命,基于TouchGFX的高效GUI显示方案
  • pytorch中nn.Conv2d详解及参数设置原则
  • php反序列化 ctf例题演示 框架安全(TP,Yii,Laravel) phpggc生成框架利用pop
  • PyTorch 自动混合精度AMP Grad Scaler 源码解析:_unscale_grads_ 与 unscale_ 函数
  • 【HarmonyOS-ArkTS语言】计算器的实现【合集】
  • 图漾相机基础操作
  • 查找路由器的管理后台ip【通用找IP】
  • 在高德地图上加载3DTilesLayer图层模型/天地瓦片
  • excel填充十六进制
  • 2025年京东云快速搭建幻兽帕鲁联机服务器教程
  • STM32-笔记18-呼吸灯
  • docker 基本使用
  • JavaVue-Get请求 数组参数(qs格式化前端数据)
  • 汇编语言与接口技术--跑马灯
  • OpenGL材质系统和贴图纹理
  • 【2024华为OD-E卷-100分-火星文计算】(题目+思路+JavaC++Python解析)
  • 网络物理互连
  • 固定资产管理系统|Java|SSM|VUE| 前后端分离
  • qemu-kvm使用简介
  • js逆向实战(1)-- 某☁️音乐下载
  • Docker 中启动 Nacos
  • Vue Amazing UI 组件库(Vue3+TypeScript+Vite 等最新技术栈开发)
  • 普及组集训数据结构--并查集
  • 学习threejs,导入AWD格式的模型
  • iOS实现在collectionView顶部插入数据效果
  • 分布式IO模块:激光切割机产线高效控制的创新引擎