Redis知识补充(1)

news/2024/5/12 2:36:10/文章来源:https://blog.csdn.net/weixin_61518137/article/details/131601637

1)Redis本身就是在内存中进行存储数据的,那么为什么不直接定义一个变量来针对数据直接进行存储呢?因为Redis主要是应用于分布式系统,才能发挥它的最大威力,如果只是一个单机程序,通过变量存储数据的方式,是比Redis有着更好的选择

2)因为自己主机定义的变量只能在自己的主机上进行使用,自己的主机有着自己的进程,其他的主机是处于别的进程上面的,如果别的主机也就是别的进程想要进行访问其他主机上的数据只能就通过进程间通信Redis就是基于网络,可以把自己内存中的变量交给别的进程,甚至别的主机上的进程使用,从而让任何一个应用程序能够访问到redis中的变量,从而使数据在分布式系统中可以达到共享使用的效果;

3)和MYSQL相比,更大的劣势就是存储空间特别慢,大多数的互联网产品,都是存在着2 8原则的,20%的热点数据能满足80%的访问需求,增加redis会使系统的复杂程度大大提升,而且如果数据发生修改,还涉及到redis和MYSQL的数据同步问题;

说一下什么是Redis?

 

 

 

使用IO多路复用减少等待Socket轮询等待的时间

Redis的应用场景:

 

1)实时存储:把Redis当成了数据库,大多数考虑到数据存储,优先考虑的是大,但是仍然有一些场景,考虑的是快,搜索引擎也就是广告搜索(商业搜索),他对于性能的要求是非常高的,所以在实际情况下并没有使用到MYSQL这样的数据库,而是把所有需要进行检索的数据都存放到了内存里面,就是使用类似于Redis这样的内存数据库来完成的,但是像这样的内存数据库,需要进行存储大量的数据,是需要不少的硬件资源的,所以只能靠充值了

如果将redis当成数据库,那么Redis中存放的是全量数据,这里面的数据是不可以随便丢的

2.1)用作于缓存或者是存储session:使用MYSQL存数据太慢,根据二八原则,将热点数据存储在redis中,Redis中存放的是部分数据,全量数据都是依靠MYSQL来进行存储的,哪怕Redis的数据没了,还可以从MYSQL这边加载回来

2.2)介绍一下SessionStorage:

Cookie:主要是用来实现用户信息的保存,是需要Session来进行配合的,Session是存储在应用服务器上面的,在Session里面服务器才真正的保存了用户数据,而Cookie里面只是进行存储了用户的唯一身份标识,SessionID只是浏览器在这边存储了用户的一个唯一身份标识

 

那么如何解决上述问题呢?

1)想办法让负载均衡器,把办法把同一个用户的请求始终打到同一个机器上面,不是通过轮询的方式而是通过分配userID这样的方式来分配机器;

2)把会话信息单独的拎出来,放到一组独立的机器上面进行存储,况且如果说机器发生了重启,那么保存在内存中的Session会话信息也并不会丢失

3)消息队列:充当服务器,基于这个消息队列,可以实现一个网络版本的生产者消费者模型

在分布式系统中,服务器和服务器之间,有时候也是需要使用到生产者消费者模型的,它的优势就是解耦合,肖锋填谷

redis是不适合的场景:不适合存储大规模数据

redis服务器本体负责存储和管理数据

Redis的客户端和服务器可以在同一台主机上,也可以在不同的主机上,但是实际上redis服务器不光给一个客户端提供服务,还有可能给很多个客户端提供服务 

 

1)在单机环境下,还是需要使用HashMap来直接操作内存,而使用Redis是先通过网络进行通信,然后再来操作内存网络传输的速度是远远小于直接操作内存的速度的,现在即使是万兆网卡,虽然已经达到了操作磁盘的速度但是相比于操作内存的速度来说还是要慢上很多的

2)那么在实际的开发场景中,是否要使用到redis呢?还是要结合具体的需求来进行确定,引入redis的缺点,会使系统变得更慢,但是有了redis之后,就可以把数据单独来进行存储,后续涉及到应用服务器重启的时候,是不会影响到数据的内容的,况且如果未来要扩展到分布式系统使用redis也是最佳的,所以我们在引入一个技术的时候,一定要想清楚来龙去脉,想清楚能够解决什么问题,引入了什么问题

 

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

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

相关文章

Kotlin~Composite组合模式

概念 能够帮助实现树状结构的模式。 主要特点 递归组合树状结构统一处理所有对象 角色介绍 Component: 组合接口Leaf: 叶子节点,无子节点Composite:枝节点,用来存储子部件 UML 代码实现 interface Organ {fun personCount():Int } cla…

[VUE学习】从头搭建权限管理系统前端-初始化

1.安装Node 2.安装Vue Cli vue的一个脚手架 npm install -g vue/cli 3.vue ui搭建vue项目 cmd 运行 vue ui 然后创建新项目 选择npm 选择配置 Babel 是编译的 Router 是路由 vuex 是状态保存的 Linter/fomatter 代码检测和格式化 创建完成 这个时候 代码在我们本地…

解决IDEA/WebStorm的Ctrl+Shift+F冲突失效

IDEA 的 CtrlShiftF 是全文或全项目搜索搜索快捷键,非常好用。 当这个快捷键偶而会失效时,基本可以确定是快捷键冲突了。 检查所有运行的软件的快捷键,若有设置为CtrlShiftF的则改掉。特别是输入法会占用较多的快捷键。 例如我这里的搜过输…

Skywalking高级使用

Skywalking高级使用 RPC调用监控Mysql调用监控Skywalking常用插件获取追踪ID过滤指定的端点告警功能Skywalking原理Open Tracing介绍 RPC调用监控 Skywalking(6.5.0)支持的RPC框架有以下几种: (1) Dubbo 2.5.4 -> 2.6.0 (2) Dubbox 2.8.4 (3) Apache Dubbo 2.7.…

Git gui教程---第四篇 Git gui的使用 添加文件,并提交

添加文件,并提交 新建一个txt文件点击扫描重新扫描,未缓存改动多了我们刚刚新建的文件。 点击缓存改动,文件位置变换。 如果缓存选错,想撤销,在菜单栏选择“提交”,“从本次提交撤销”,文件变更…

实例解释在lingo中使用集合模型

某部门有三个生产同一产品的工厂(产地),生产的产品运往四个销售点(销地)出售,各个工厂的生产量、各销地的销量(单位:吨)、从各个工厂到各个销售点的单位运价(…

动态规划之62 不同路径(第4道)

题目: 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径&…

debian to go

可以使用虚拟机操作,在运行镜像到安装步骤时选择 u盘 不需要手动分 /boot 分区之类的,“Automaction”自动分区就行,全安装到根目录。boot load 安装到 /dev/sdb,也就是硬盘本身 推荐使用gpt分区表,建议拿不用的盘练…

js实现图片压缩

创建一个type"file"的input标签&#xff0c;用于文件上传。 <input type"file" name"" id"upload" value"" />通过js实现图片压缩 window.onload function () {const upload document.getElementById("upload…

范德波尔方程可视化

Van der Pol方程如下所示 d x d t y d y d t − x ( 1 − x 2 ) y \begin{equation} \begin{aligned} \frac{dx}{dt} & y \\ \frac{dy}{dt} & -x(1-x^2)y \end{aligned} \end{equation} dtdx​dtdy​​y−x(1−x2)y​​​ 相应的程序如下 为了观看长期趋势&…

【LeetCode每日一题合集】2023.7.3-2023.7.9

文章目录 2023.7.3——445. 两数相加 II&#xff08;大数相加/高精度加法&#xff09;2023.7.4——2679. 矩阵中的和2023.7.5——2600. K 件物品的最大和&#xff08;贪心&#xff09;代码1——贪心模拟代码2——Java一行 2023.7.6——2178. 拆分成最多数目的正偶数之和&#x…

STM32的ADC模式及其应用例程介绍

STM32的ADC模式及其应用例程介绍 &#x1f4cd;ST官方相关应用笔记介绍资料&#xff1a;https://www.stmcu.com.cn/Designresource/detail/application_note/705947&#x1f4cc;相关例程资源包&#xff1a;STSW-STM32028&#xff1a;https://www.st.com/zh/embedded-software/…

MySQL数据库对象与数据备份和还原详解

目录 一、视图 1. 什么是视图 2. 视图与数据表的区别 3. 视图的优点 4. 创建视图 二、索引 1. 什么是索引 2. 为什么要使用索引 3. 索引优缺点 4. 何时不使用索引 5. 索引何时失效 6. 索引分类 6.1 普通索引 6.2 唯一索引 6.3 主键索引 6.4 组合索引 三、数据的…

Integration Objects OPC 所有产品Crack

OPC产品 OPC UA 升级到 OPC UA 以提高互操作性和安全性。 OPC 隧道 无需 DCOM 即可实现安全可靠的连接。 OPC 数据归档 将 OPC 数据存储到标准数据库或 CSV 文件中。 OPC 服务器 将任何通信协议转换为OPC标准。 OPC 客户端 读取、写入和传输您的 OPC 数据。 OPC 服务器工具…

axios的学习

axios是基于promise对ajax的一种封装 //将省份信息打印到网页上 <p class"my-p"></p> <script src"https://unpkg.com/axios/dist/axios.min.js"></script> <script>axios({url:http://hmajax.itheima.net/api/province}).…

图形学 | 期末复习(上)| games101笔记 | 补档

博客基于GAMES101-现代计算机图形学入门-闫令琪&#xff0c;但不是其完整笔记&#xff0c;基于复习要求有一定的删减。考试以图形学入门基本概念和核心研究内容为主&#xff0c;少量公式。即以论述概念为主&#xff0c;涉及少量算法。p1:29:12是对应的games101视频节点&#xf…

在阿里云上部署Springboot项目

文章目录 环境准备1.安装jdk2.安装mysql3.开启端口 上传项目1.数据库上传2.项目上传 环境准备 1.安装jdk 查看系统中原来是否含有java环境 rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj其中&#xff0c;gcj是一个轻巧的&#xff0c;性能优越的Java语言编译器。它…

基于深度学习的高精度球场足球检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度球场足球检测识别系统可用于日常生活中或野外来检测与定位球场足球目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的球场足球目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5…

【考研408计算机组成原理】第三章存储系统 第五节cache

3.5.1工作原理 局部性原理&#xff1a;在最近可能会使用到周围的数据和指令。 性能分析&#xff1a;访问数据的时间 例题&#xff1a; 提出问题 知识总结 3.5.2 cache和主存的映射方式 3.5.3 替换算法 3.5.4 cache写策略

确保无缝、安全的云转型

随着云计算继续主导数字化转型&#xff08;这是理所当然的&#xff09;&#xff0c;组织面临着双重挑战&#xff1a;将运营无缝转移到云并确保这种转型的安全。 虽然云的采用保证了可扩展性、成本效率和生产力的提高&#xff0c;但保持警惕对于组织防范网络安全威胁和安全漏洞…