Redis--高并发分布式结构

目录

一、引言

二、redis

1.什么是redis?

三、基础概念

1.什么是分布式?

2.应用服务和数据库服务分离

3.负载均衡

4.分库分表

5.微服务架构

四、总结


一、引言

  本篇文章就简单介绍一下什么是redis,以及一些关于高并发和分布式结构的基本概念。

二、redis

1.什么是redis?

  Redis是⼀种基于键值对(key-value)的 NoSQL 数据库,与很多键值对数据库不同的是,Redis中的值可以是由 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等多种数据结构和算法组成,因此 Redis可以满⾜很多的应用场景,⽽且因为 Redis 会将所有数据都存放再内存中,所以它的读写性能非常惊人。不仅如此,Redis 还可以将内存的数据利用快照和日志的形式保存到硬盘上,这样在发⽣类似断电或者机器故障的时候,内存中的数据不会“丢失”。除了上述功能以外,Redis 还提供了键过期、发布订阅、事务、流⽔线、Lua 脚本等附加功能。总之,如果在合适的场景使⽤号 Redis,它就会像⼀把瑞士军刀⼀样所向披靡。

三、基础概念

1.什么是分布式?

  我们平常所解除到的大部分都是单机架构的服务器,但因为数据量的庞大,一台机器已经不能够支撑那么多业务数据了,就必须引入更多的机器,把同一业务的东西分布在多台机器上就叫做分布式。

2.应用服务和数据库服务分离

  

将应用服务服务器和数据服务服务器进行分离。

3.负载均衡

当业务数据量实在是太多时,我们可以先引入一个负载均衡(本质上也是服务器),然后再将数据分配给应用服务器。

给应用服务器引入了多个服务器,那对于数据库服务器我们同样也会引入更多的服务器。

  主服务器用于写,从服务器用于读,因为读的操作是远远大于写操作的,所以这里的服务器强调一主多从。

  数据库有个天然的问题,数据库的响应是十分缓慢的,所以我们就将数据分为了冷热数据,热数据放入缓存中,也就是我们的redis中。

4.分库分表

  当数据实在是太多的时候,我们就要将数据库进行划分,例如一个数据库存用户表,一个数据库存商品表,一个存交易表。

5.微服务架构

  简单而言就是将不同的业务逻辑分为不同的部分。

引入微服务的代价:

1.系统的性能下降了,拆出来更多的服务,多个功能之间相互依赖网络通信。

2.系统复杂程度提高,可用性收到影响,服务器更多了,出现问题的可能性也更大了,这就需要监控报警系统以及运维人员来维护。

优势:

1.解决了人的问题

2.使用微服务,可以更方便于功能复用

3.可以给不同的服务进行不同的部署

四、总结

 此篇文章并未对redis进行过多讲解,只是简单介绍了一下概念,但其他概念是学习redis的基础,也是十分重要的,下篇文章就将专门讲解redis相关特性了,感谢观看!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Repo管理

文章目录 前言Repo介绍清单仓库清单仓库的组成 初始化Repo同步远程仓库Repo实际应用 前言 我们知道,Git是用来管理某一个仓库,那当一个项目用到了多个仓库时,怎么来同步管理这些仓库呢?这个时候就可以引入Repo管理。 Repo介绍 …

python 数据分析之地图数据绘制

python 数据分析之地图数据绘制 1、根据历史的2023年GDP数据做地图分析 import numpy as np import matplotlib import matplotlib.pyplot as plt matplotlib.rcParams[font.family] SimHei import pandas as pd import folium from folium import Map import geopandas as…

分治算法(单选题)

2-1 分数 2 下列多少种排序算法用了分治法? 堆排序插入排序归并排序快速排序选择排序希尔排序 A.2 B.3 C.4 D.5 正确答案 A 2-2 分数 2 分治法的设计思想是将一个难以直接解决的大问题分割成规模较小的子问题,分别解决问题,最后将子…

探索 HTTP 请求头中的 “Host” 字段及其安全风险

探索 HTTP 请求头中的 “Host” 字段及其安全风险 大家好,今天我们来聊聊 HTTP 请求头中的“Host”字段,以及它的使用方法和安全风险。 什么是Host字段 在 HTTP 请求头中,“Host”字段是一个至关重要的部分。它告诉服务器,我们…

将 Ubuntu 22.04 LTS 升级到 24.04 LTS

Ubuntu 24.04 LTS 将支持 Ubuntu 桌面、Ubuntu 服务器和 Ubuntu Core 5 年,直到 2029 年 4 月。 本文将介绍如何将当前 Ubuntu 22.04 系统升级到最新 Ubuntu 24.04 LTS版本。 备份个人数据 以防万一,把系统中的重要数据自己备份一下~ 安装配置SSH访问…

渗透测试-前端验签绕过之SHA256

本文是高级前端加解密与验签实战的第1篇文章,本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过SHA256签名来爆破登录。 绕过 通过查看源代码可以看到key为 1234123412341234通过查看源代码可以看到是通过SHA256来进行签名的&#xff0…

解锁医学数据分析新姿势:堆叠图的奇妙世界

在医学数据分析中,数据的可视化是一个非常重要的环节。通过图形展示,我们可以更直观地理解数据之间的关系和趋势。今天,我们将介绍一种非常有用的图形——堆叠图(Stacked Bar Chart),并展示如何在Python中使…

接口测试Day01-HTTP请求

概念 接口:系统之间(外部系统与内部系统,内部系统与内部系统)数据交通的通道。 接口测试:校验 接口回发的 响应数据 与 预期结果 是否一致。 接口测试,可以绕过前端界面。直接对 服务器进行测试&#xff01…

04、GC基础知识

JVM程序在跑起来之后,在数据的交互过程中,就会有一些数据是过期不用的,这些数据可以看做是垃圾,JVM中,这些垃圾是不用开发者管的,它自己会有一套垃圾回收系统自动回收这些内存垃圾,以备后面继续…

一、STM32MP257开发板初体验

文章目录 STM32MP257开发板初体验1. 硬件介绍2. 下载编译源码3. 烧录4. 启动 STM32MP257开发板初体验 从本篇文章开始本专栏将详细记录学习STM32MP257过程中的学习心得,旨在详细掌握嵌入式LINUX中的全流程内容,主要包括启动流程分析、驱动分析、Yocto系…

分析M0G突破后急剧下跌内因,x.game阐述不利面延续多久

MOG最新消息显示,美国唐纳德-的一则声明公开表示支持一种基于以太坊网络ERC-20代币标准的病毒式meme代币——Mog Coin(MOG),这一消息迅速发酵。然而,令人意想不到的是,在这位全球知名政治人物的背书之后&am…

P8772 求和 P8716 回文日期

文章目录 [蓝桥杯 2022 省 A] 求和[蓝桥杯 2020 省 AB2] 回文日期 [蓝桥杯 2022 省 A] 求和 题目描述 给定 n n n 个整数 a 1 , a 2 , ⋯ , a n a_{1}, a_{2}, \cdots, a_{n} a1​,a2​,⋯,an​, 求它们两两相乘再相加的和,即 S a 1 ⋅ a 2 a 1 ⋅ a 3 ⋯ a…

【优选算法】二分算法(在排序数组中查找元素的第一个和最后一个位置,寻找峰值,寻找排序数组中的最小值)

二分算法简介: 提到二分我们可能都会想起二分查找,二分查找要求待查找的数组是有序的,与我们今天讲的二分算法不同,并不是数组元素严格按照有序排列才可以使用二分算法,只要数组中有一个点可以将数组分为两个部分&…

升级Ubuntu 24.04 LTS报错“Oh no! Something has gone wrong.”

强烈建议:升级Ubuntu系统之前先配置好SSH远程访问 最近升级Ubuntu系统(18->24),经历了一些惊魂时刻,复盘下来没有重装系统的最得益于SSH访问。 在升级到24.04版本时,一切似乎表现得很正常,…

大模型底座 Transformer 的核心技术解析

1. 引言 说明目标 在深度学习领域,Transformer架构已成为近年来最重要的技术突破之一。它最早由Vaswani等人在2017年的论文《Attention is All You Need》中提出,迅速成为自然语言处理(NLP)和其他序列建模任务的核心工具。传统方法…

2.生成Transformation

目录 前言 Source FlatMap KeyBy sum print 总结 前言 以下面的WordCount为例 package com.wlh.p1;import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.functions.KeySelector; import org.apache.flink.api.java.tuple…

1. 机器学习基本知识(3)——机器学习的主要挑战

1.5 机器学习的主要挑战 1.5.1 训练数据不足 对于复杂问题而言,数据比算法更重要但中小型数据集仍然很普遍,获得额外的训练数据并不总是一件轻而易举或物美价廉的事情,所以暂时不要抛弃算法。 1.5.2 训练数据不具有代表性 采样偏差&#…

TypeScript学习路线图

‌ TypeScript 是由微软开发和维护的一种静态类型编程语言,它是 JavaScript 的超集。TypeScript 的创建是为了解决构建大规模 JavaScript 应用程序所面临的挑战,并向该语言添加了可选的类型注解、类、接口和其他特性。 使用 TypeScript 的主要好处包括&a…

负载均衡oj项目:编译模块

编译运行模块是一个网络服务&#xff0c;这样编译模块就可以可以快速部署到&#xff0c;其他主机上。 编译模块思路 util.hpp #pragma once #include <string> #include <vector> #include <sys/types.h> #include <sys/stat.h> #include <unistd…

绿色浪潮,VELO Angel Glide坐垫奏响环保骑行乐章

地球的环境日益恶劣&#xff0c;冰川消融、海平面上升、极端天气频繁出现&#xff0c;这一切都在不断提醒着我们&#xff0c;保护地球家园刻不容缓。而在这场关乎人类未来的环保行动中&#xff0c;各个领域都在积极探索可持续发展的道路&#xff0c;自行车坐垫领域也迎来了绿色…