Redies基础篇(一)

        Redis 是一个高性能的key-value数据库。Redies支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的,redis支持各种不同方式的排序。

        对于数据库而言,MySQL不就是很好的选择吗?为什么还要搞Redies?

        MySQL最大的问题在于,访问速度比较慢,因为很多互联网产品中,对于性能要求是很高的。这是相对而言的,只有在使用中才能感受得到。Redies和MySQL相比最大的劣势就是存储空间是有限的。

        那将Redies和MySQL相结合性能方面相互弥补能否发挥更好的效果?

        这样会大大提升系统复杂程度,而且如果数据发生修改,还会涉及到Redies和MySQL之间的数据同步问题。

        Redies是在分布式系统中,才能发挥威力的~~
        如果只是单机程序,直接通过变量存储数据的方式,是比使用Redies更优的选择。

首先让我们来了解一下,“单机架构”。

那什么是单机架构,单机架构就是一台服务器负责所有工作。

众所周知,计算机的资源是有限的,总会有耗尽的时候。

 当访问量增大,数据量增大,就会消耗大量的计算机资源。

比如说:CPU,服务器每次收到一个请求,都会消耗CPU的资源,如果同一时刻,有大量的访问,CPU资源不够用怎么办。

如果系统资源不够用,我们应该怎样处理?

1,节流:就是软件优化(凭借程序员的深厚经验去测试性能,找到那个环节出错或者达到性能瓶颈,去调整)

2,开源:就是增加更多的资源(你不是缺少资源吗,那就给你增加资源)

一个主机上面能增加的硬件资源是有限的,这取决于主板的扩展能力,那如果增加到主板的极限还是不够那又该怎样处理。

那就再引入一台机器,这样可以解决问题吗?答案是:可以。

但是这也会引入新的问题,这样做需要对软件做出相应的调整和适配。一旦引入多台主机,这个系统就是”分布式系统“,上面的各种性能资源问题告诉我们,我们这样做是没有办法的办法。

引入分布式,系统的复杂程度会大大提高,Bug出现的概率也会变高,后期维护也随之升高。

分布式系统:

 

        上图的应用服务器和存储服务器,是独立的机器,也就是分布式系统,将大量的资源集中起来,共同解决资源短缺的问题。
例如:当前有1W条请求,负载均衡算法(不同的算法会产生不同的效果)会将这些请求较均匀的分布给每一个应用服务器(可以有多台服务器),这样该系统的资源也就得到了相对的缓解。

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

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

相关文章

【ETABS】【RHINO】案例:Swallow to ETABS

文章目录 01. Swallow Overview总览1 LOAD:Defination of LoadCase、Response Combo2 SectionArea Section and Area Load(面截面定义与指定,面荷载指定)Frame Section with rebarattr and linear load(带钢筋属性框架…

下载,连接mysql数据库驱动(最详细)

前言 本篇博客,我讲讲如何连接数据库?我使用mysql数据库举例。 目录 下载对应的数据库jar 包 百度网盘 存有8.4.0版本压缩包:链接:https://pan.baidu.com/s/13uZtXRmuewHRbXaaCU0Xsw?pwduipy 提取码:uipy 复制这…

STM32-TIM定时器

本内容基于江协科技STM32视频内容,整理而得。 文章目录 1. TIM1.1 TIM定时器1.2 定时器类型1.3 基本定时器1.4 通用定时器1.4 高级定时器1.5 定时中断基本结构1.6 预分频器时序1.7 计数器时序1.8 计数器无预装时序1.9 计数器有预装时序1.10 RCC时钟树 2. TIM库函数…

前端面试题11(浅谈JavaScript深拷贝与浅拷贝)

在JavaScript中,数据的复制可以分为浅拷贝(Shallow Copy)和深拷贝(Deep Copy)。这两种拷贝方式主要区别在于如何处理对象中的嵌套对象。下面我会详细解释这两者的概念、区别,并提供相应的实现代码。 浅拷贝…

【机器学习实战】Datawhale夏令营:Baseline精读笔记2

# AI夏令营 # Datawhale # 夏令营 在原有的Baseline上除了交叉验证,还有一种关键的优化方式,即特征工程。 如何优化特征,关系着我们提高模型预测的精准度。特征工程往往是对问题的领域有深入了解的人员能够做好的部分,因为我们要…

链式二叉树oj题

1.输入k ,找第k层节点个数 int TreeKlevel(BTNode*root,int k) {if (root NULL) {return 0;}if (k 1) {return 1;}return TreeKlevel(root->left, k - 1)TreeKlevel(root->right, k - 1); } 在这里我们要确定递归子问题,第一个就是NULL时返回&…

26_嵌入式系统网络接口

以太网接口基本原理 IEEE802标准 局域网标准协议工作在物理层和数据链路层,其将数据链路层又划分为两层,从下到上分别为介质访问控制子层(不同的MAC子层,与具体接入的传输介质相关),逻辑链路控制子层(统一的LLC子层,为上层提供统…

非同步升压转换器,效率95%你信吗?ETA1611输出电流2A, 22V DCDC

前言: 截止24年7月7日某创报价:500: ¥0.7856 / 个 建议使用前同时了解下方器件。 2毛钱的SOT23-5封装28V、1.5A、1.2MHz DCDC转换器用于LCD偏置电源和白光LED驱动等MT3540升压芯片 描述 ETA1611 SOT23-6封装 丝印GVYW&#xff0…

c进阶篇(三):字符串函数

1.strlen: strlen - C Reference strlen 函数是一个标准库函数&#xff0c;用于计算以 null 结尾的字符串的长度&#xff0c;也就是字符串中实际字符的数量&#xff0c;不包括最后的 null 终止符 \0。它定义在 <string.h> 头文件中。 函数原型:size_t strlen(const ch…

一篇就够了,为你答疑解惑:锂电池一阶模型-在线参数辨识(附代码)

锂电池一阶模型-在线参数辨识 背景在线 VS 离线 参数辨识递推最小二乘法一阶戴维南Z域离散表达式 背景 锂电池一阶戴维南等效模型的基础知识和离线辨识方法&#xff0c;已经在上一期非常详细地讲解了一轮&#xff08;上期文章请戳此处&#xff09;&#xff0c;本期继续讲解一下…

【数据结构】经典链表题目详解集合(反转链表、相交链表、链表的中间节点、回文链表)

文章目录 一、反转链表1、程序详解2、代码 二、相交链表1、程序详解2、代码 三、链表的中间节点1、程序详解2、代码 四、回文链表1、程序详解2、代码 一、反转链表 1、程序详解 题目&#xff1a;给定单链表的头节点 head &#xff0c;请反转链表&#xff0c;并返回反转后的链…

理解注意力机制与多头注意力:深度学习中的“聚焦术”

Attention 理解注意力机制与多头注意力&#xff1a;深度学习中的“聚焦术”什么是注意力机制&#xff1f;**核心思想** 什么是多头注意力机制&#xff1f;**工作原理** **多头注意力的优势****应用领域****结论** 理解注意力机制与多头注意力&#xff1a;深度学习中的“聚焦术”…

MLIR

方言 简介操作块区域值范围Control Flow and SSACFG Regions 操作与多区域&#xff08;Operations with Multiple Regions&#xff09;闭包&#xff08;Closure&#xff09;图形区域&#xff08;Graph Regions&#xff09;参数和结果&#xff08;Arguments and Results&#xf…

vscode编辑keil工程

1.编码问题 通常keil默认amsi格式&#xff0c;vscode默认utf-8格式&#xff0c;直接打开会出现乱码问题。 解决过程&#xff1a; 1.想着创建keil阶段&#xff0c;就使用utf-编码格式。 在区域设置里面“选择beta版&#xff0c;提供全球utf-8 提供全球语言支持”&#xff0c…

JVM专题之内存模型以及如何判定对象已死问题

体验与验证 2.4.5.1 使用visualvm **visualgc插件下载链接 :https://visualvm.github.io/pluginscenters.html https://visualvm.github.io/pluginscenters.html **选择对应JDK版本链接--->Tools--->Visual GC** 2.4.5.2 堆内存溢出 * **代码** java @RestCont…

从0制作自己的ros导航小车(01、准备工作)

@TOC 前言 本篇说明需要具备的知识和软硬件。可以不用全部具备,但基础要有,写的不是非常详细。 本小车分为上位机与下位机两部分,上位机使用旭日x3派运行ros进行开发和算法实现,下位机使用stm32驱动底盘和传感器数据采集。 一、知识 ①stm32部分(当然也可以使用其它控制…

uniapp/Android App上架三星市场需要下载所需要的SDK

只需添加以下一个权限在AndroidManifest.xml <uses-permission android:name"com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY"/>uniapp开发的&#xff0c;需要在App权限配置中加入以上的额外权限&#xff1a;

1958.力扣每日一题7/7 Java(100%解)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 首先将指定位…

游戏开发面试题5

什么是进程、线程、协程 进程 进程是计算机的一种基本运行单位&#xff0c;由操作系统管理资源和分配资源的基本单位&#xff0c;进程可以理解为一个正在运行的程序 线程 线程是计算机的一种独立执行单元&#xff0c;是操作系统能够进行运算调度的基本单位&#xff0c;线程之间…

排序 -- 手撕归并排序(递归和非递归写法)

一、基本思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有…