相识redis

在这里插入图片描述

一、Redis简介

什么是redis?

Redis(全称为Remote Dictionary Server)是一个开源的非关系性数据库用于存储键值对,主要用于数据存储、缓存和消息队列方面,相传redis的初心是做消息队列起家但有心栽花花不开,无心插柳柳成荫。消息对列这一功能并没得到广泛的应用,反而作为缓存而名声大噪。

为什么得到广泛应用?

在这里插入图片描述

“YOUR APP IS ABOUT TO GET FASTER” 从Redis的宣传标语中就可以看到被广泛应用的一个原因就是因为快,相比于其它数据库Redis的数据是存储在内存中的,众所周知内存的读写速度往往是大于硬盘的读写速度,从而提高数据的读写速率。

二、Redis的核心特性

高性能
为什么说其具有高性能特性,主要有以下三种原因
内存存储:数据存储在内存中,数据的存取都在内存中进行, 存取速度大于硬盘。
单线程模型:在Redis6.0之前,都是以单线程模式进行操作内存,避免了线程阻塞、线程切换等一系列的开销。
IO多路复用:简单来说Reids允许单个线程同时处理多个客户端连接,每个客户端都是通过单线程来进行数据交流,从而大大提高了高并发下的性能要求。
支持多种数据结构
Redis是一种非关系性数据库,相对于关系性数据库mysql使用表来存储数据,而Redis则是以键值对的方式进行存储,value中可以存储String、List、Hash、Set、Zset类型数据,从而进一步满足开发者的工作需求。
持久化
因为Redis将数据存储在内存中,服务器重新启动会导致数据的丢失,为了避免这一问题便引入了持久化特性,通过快照和追加文件的操作将数据备份到硬盘中,数据丢失从硬盘中同步即可。
高可用性
主从复制:Reids将主服务器上的数据复制到其它从服务器上(从服务器可以有一个或多个),主服务器负责写入数据同时同步给从服务器,适用于写少读多的情况,主服务一旦宕机便可从从服务器进行数据恢复。
在这里插入图片描述
集群
Redis集群是一种分布式框架,可以将数据存储在不同服务器中,通过负载均衡器将请求数据分发给不同从服务器,每个服务器都可以进行读写操作,主服务器宕机从服务器可以继续执行任务。
在这里插入图片描述

主从复制和集群的关系:可以理解为主从服务器是集群中的一部分,集群集中管理多个服务器进行数据存储,在通过主从复制对每个服务器实现读写分离操作,进一步体现Redis的高可用性。

三、Redis的应用场景

1.全量数据库
使用redis最为全量数据库主要原因并不是redis存储空间有多大,而是因为其读取速度之快,并非所有应用场景都是存储空间大为好,相对于搜索引擎来说快则是最主要的。
2.缓冲、会话管理
说到缓存到了Redis最拿手的地方,“二八原则”指的是20%的热点数据可以满足80%用户的搜索需求,因此只需将redis作为缓存存储热点数据方便快速搜索,mysql作为全量数据进行存储,即使缓存丢失也可从mysql中重新获取。
Redis可以通过负载均衡器利用特别的方式将会话发送到原有的服务器上,从而避免用户登录信息丢失的问题。
3.消息对列
Redis是做消息对列起家的,但其功能并没有得到市场的认可主要将其作为缓存来进行使用,如项目中对消息队列使用并不是很多可以使用redis进行代替。

四、Redis的优缺点

优点
Redis内存存储、IO多路复用、单线程模型提高了读取速度;多样化的数据结构满足了复杂的开发需求;持久化机制保证了数据的安全性;主从复制集群实现了数据分布式存储和读写分离。
缺点
有利必有弊,优点有时恰好也是缺点,利用内存进行存储同样带来了硬件上不可避免的开销;持久化机制同样需要一定的时间进行同步从而影响性能;独特的单线程模型在某些特定场景可能可能成为其瓶颈。

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

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

相关文章

WPF+MVVM案例实战(一)- 设备状态LED灯变化实现

文章目录 1、项目创建2、UI界面布局1. MainWindow.xaml2、颜色转换器实现2.MainViewModel.cs 代码实现 3、运行效果4.源代码下载 1、项目创建 打开 VS2022 ,新建项目 Wpf_Examples,创建各层级文件夹,安装 CommunityToolkit.Mvvm 和 Microsof…

react18中react-thunk实现公共数据仓库的异步操作

redux及react-redux都只能实现数据的同步修改更新,有点类似于vue中的mutation,只能做同步操作,异步的话不用actions来实现。由于在项目始终不可避免要实现的异步数据的更新,这明显不够用了。是时候引入我们的异步中间件redux-thun…

长思维PRM

思维链 除了常见的连接词如 “and” 和 “so” 之外。还出现了"wait", Alternatively" 等特殊的关键词,"像 “wait” (表示反思)和 “Alternatively”(表示探索不同路径) 这样的关键词是模型能够进行反思和自我纠正的重要指标 迭代式问题解决&…

【PLC编程】GX Works报未能正常执行RUN中写入解决办法

在PLC编程中按F4转换时报未正常执行RUN中写入,可能是程序不一致。 选择工具->选项 选择RUN中写入。去除转换(编译)中执行RUN中写入 点击确定后,就不会再报此问题。F4转换也能正常转换了。

Java Lock CountDownLatch 总结

前言 相关系列 《Java & Lock & 目录》(持续更新)《Java & Lock & CountDownLatch & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Java & Lock & CountDownLatch & 总结》(学习总…

Selenium4自动化测试常用函数总结,各种场景操作实战

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 seleninum作为自动化测试的工具,自然是提供了很多自动化操作的函数,下面列举下比较常用的函数,更多可见官方文档:…

网络安全的重要性及实践指南

网络安全的重要性及实践指南 前言 随着信息技术的快速发展,网络安全问题日益突出。无论是个人用户还是企业组织,网络安全都成为了必须重视的问题。本文将深入探讨网络安全的重要性、常见威胁、以及如何有效地保护网络安全。 一、网络安全的重要性 1.…

丝氨酸/苏氨酸激酶(STKs):前列腺癌治疗的新兴靶点

引言 前列腺癌(PCa)是男性癌症相关死亡的第五大原因,全球约有140万患者,2020年超37.5万死亡病例。 靶向治疗是潜力巨大的领域,PARP、PSMA、STEAP1、DLL3等是前列腺癌治疗的明星靶点。 除此之外,还有哪些…

深度学习之降维和聚类

1 降维和聚类 1.1 图解为什么会产生维数灾难 ​ 假如数据集包含10张照片,照片中包含三角形和圆两种形状。现在来设计一个分类器进行训练,让这个分类器对其他的照片进行正确分类(假设三角形和圆的总数是无限大),简单的…

SMT(表面贴装技术)

一、什么是SMT SMT,即表面贴装技术(Surface Mounted Technology),是一种将元器件直接安装到印刷电路板(PCB)表面的制造方法。这种技术极大地提高了电子产品的密度和性能,是现代电子制造中的关键…

国外白帽故事 | 通过OSINT入侵了1000多辆特斯拉

我撰写这篇文章的目的是为了提高特斯拉车主的安全意识,值得注意的是,这并不是特斯拉车辆或其基础设施的漏洞。 在这篇文章中,我将分享我是如何通过OSINT技术入侵特斯拉汽车的,以及我向特斯拉报告后得到的回应,最后我也…

logdata-anomaly-miner:一款安全日志解析与异常检测工具

关于logdata-anomaly-miner logdata-anomaly-miner是一款安全日志解析与异常检测工具,该工具旨在以有限的资源和尽可能低的权限运行分析,以使其适合生产服务器使用。 为了确保 logdata-anomaly-miner的正常运行,推荐安装了python > 3.6的…

【Vue】word / excel / ppt / pdf / 视频(mp4,mov) 预览

文件预览 Vue3一. word二. excel三. ppt四. pdf4.1 vue-pdf-embed4.2 iframe 五. 视频六&#xff1a;扩展——kkFileView Vue3 一. word 安装&#xff1a;npm install docx-preview父页面 <template><div><DocPreviewv-if"filePath.includes(docx)"…

react 总结+复习+应用加深

文章目录 一、React生命周期1. 挂载阶段&#xff08;Mounting&#xff09;补充2. 更新阶段&#xff08;Updating&#xff09;补充 static getDerivedStateFromProps 更新阶段应用补充 getSnapshotBeforeUpdate3. 卸载阶段&#xff08;Unmounting&#xff09; 二、React组件间的…

基于.NET 8.0,C#中Microsoft.Office.Interop.Excel来操作office365的excel

开发环境&#xff1a; Visual Studio 2022 office365 项目模板&#xff1a;WPF应用程序 框架&#xff1a;.NET 8.0 依赖&#xff1a;Microsoft.Office.Interop.Excel 注意&#xff1a; 1.使用Microsoft.Office.Interop.Excel库时&#xff0c;服务器或电脑里面必须安装得…

NLP--一起学习Word Vector【实践】

纸上得来终觉浅&#xff0c;绝知此事要躬行。 《冬夜读书示子聿》 值此1024的程序员节&#xff0c;我们一起学习 Word Vector。 本章一起学习文本向量化&#xff0c;掌握文本向量的相关概念&#xff0c;了解各个文本向量&#xff0c;实现文本向量的算法 我开启了一个NLP共学坊…

Pytest 插件的种类

引言 Pytest是一个功能强大且扩展性强的测试框架&#xff0c;支持丰富的插件体系。通过插件&#xff0c;Pytest的功能可以得到极大扩展&#xff0c;满足各种测试需求。本文将介绍几类常用的Pytest插件&#xff0c;并简要说明其功能和使用场景。 Pytest 插件的分类 报告和输出…

代码+编译环境一并保存Git仓库,Jenkins使用docker编译

大家好&#xff0c;欢迎来到停止重构的频道。 上期介绍了Jenkins的基本用法&#xff0c;本期补充介绍Jenkins使用docker进行软件编译。 如果对docker不太熟悉&#xff0c;可以先翻看往期《docker详解》。 我们按这样的顺序展开讨论&#xff1a; 1、为什么使用docker编译软件…

网址访问小工具(模拟浏览器)

网址访问小工具&#xff08;模拟浏览器&#xff09; 文章说明核心代码运行截图源码下载 文章说明 本篇文章主要是我写的一个小demo&#xff0c;感觉效果还蛮不错的&#xff0c;作为一个记录新想法的实现思路&#xff1b;介绍了模拟浏览器页面的一些页面实现的小细节。 采用vue3…

文理学院数据库应用技术实验报告0

文理学院数据库应用技术实验报告0 实验内容 打开cmd,利用MySQL命令连接MySQL服务器。 mysql -u root -p查看当前MySQL服务实例使用的字符集(character)。 SHOW VARIABLES LIKE character_set_server;查看当前MySQL服务实例支持的字符序(collation)。 SHOW VARIABLES LIKE c…