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

如何做网站客户案例关键词名词解释

如何做网站客户案例,关键词名词解释,做网上卖酒的网站有几家,自己建立公司网站 怎样做Redis持久化方式有什么方式? Redis 的读写操作都是在内存中,所以 Redis 性能才会高,但是当 Redis 重启后,内存中的数据就会丢失,那为了保证内存中的数据不会丢失,Redis 实现了数据持久化的机制&#xff0c…

Redis持久化方式有什么方式?

Redis 的读写操作都是在内存中,所以 Redis 性能才会高,但是当 Redis 重启后,内存中的数据就会丢失,那为了保证内存中的数据不会丢失,Redis 实现了数据持久化的机制,这个机制会把数据存储到磁盘,这样在 Redis 重启就能够从磁盘中恢复原有的数据。

Redis 持久化的方式有两种:

  • AOF 日志:每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里;
  • RDB 快照:将某一时刻的内存数据,以二进制的方式写入磁盘;

AOF 日志是如何实现的?

Redis 在执行完一条写操作命令后,就会把该命令以追加的方式写入到一个文件里,然后 Redis 重启时,会读取该文件记录的命令,然后逐一执行命令的方式来进行数据恢复。

在这里插入图片描述

我这里以「set name xiaolin」命令作为例子,Redis 执行了这条命令后,记录在 AOF 日志里的内容如下图:

在这里插入图片描述

Redis 提供了 3 种写回硬盘的策略,在 Redis.conf 配置文件中的 appendfsync 配置项可以有以下 3 种参数可填:

  • Always,这个单词的意思是「总是」,所以它的意思是每次写操作命令执行完后,同步将 AOF 日志数据写回硬盘;
  • Everysec,这个单词的意思是「每秒」,所以它的意思是每次写操作命令执行完后,先将命令写入到 AOF 文件的内核缓冲区,然后每隔一秒将缓冲区里的内容写回到硬盘;
  • No,意味着不由 Redis 控制写回硬盘的时机,转交给操作系统控制写回的时机,也就是每次写操作命令执行完后,先将命令写入到 AOF 文件的内核缓冲区,再由操作系统决定何时将缓冲区内容写回硬盘。

我也把这 3 个写回策略的优缺点总结成了一张表格:

在这里插入图片描述

RDB 快照是如何实现的呢?

因为 AOF 日志记录的是操作命令,不是实际的数据,所以用 AOF 方法做故障恢复时,需要全量把日志都执行一遍,一旦 AOF 日志非常多,势必会造成 Redis 的恢复操作缓慢。

为了解决这个问题,Redis 增加了 RDB 快照。所谓的快照,就是记录某一个瞬间东西,比如当我们给风景拍照时,那一个瞬间的画面和信息就记录到了一张照片。

所以,RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据,而 AOF 文件记录的是命令操作的日志,而不是实际的数据。

因此在 Redis 恢复数据时, RDB 恢复数据的效率会比 AOF 高些,因为直接将 RDB 文件读入内存就可以,不需要像 AOF 那样还需要额外执行操作命令的步骤才能恢复数据。

Redis 提供了两个命令来生成 RDB 文件,分别是 savebgsave,他们的区别就在于是否在「主线程」里执行:

  • 执行了 save 命令,就会在主线程生成 RDB 文件,由于和执行操作命令在同一个线程,所以如果写入 RDB 文件的时间太长,会阻塞主线程;
  • 执行了 bgsave 命令,会创建一个子进程来生成 RDB 文件,这样可以避免主线程的阻塞;

Redis 是单线程还是多线程?

Redis 单线程指的是

「接收客户端请求->解析请求 ->进行数据读写等操作->发送数据给客户端」

这个过程是由一个线程(主线程)来完成的,这也是我们常说 Redis 是单线程的原因。

但是,Redis 程序并不是单线程的,Redis 在启动的时候,是会**启动后台线程(BIO)**的:

Redis 在 2.6 版本,会启动 2 个后台线程,分别处理关闭文件、AOF 刷盘这两个任务;

Redis 在 4.0 版本之后,新增了一个新的后台线程,用来异步释放 Redis 内存,也就是 lazyfree 线程。

例如执行 unlink key / flushdb async / flushall async等命令,会把这些删除操作交给后台线程来执行,好处是不会导致 Redis 主线程卡顿。因此,当我们要删除一个大 key 的时候,不要使用 del 命令删除,因为 del 是在主线程处理的,这样会导致 Redis 主线程卡顿,因此我们应该使用 unlink 命令来异步删除大key

Redis 在 6.0 版本之后,采用了多个 I/O 线程来处理网络请求,这是因为随着网络硬件的性能提升,Redis 的性能瓶颈有时会出现在网络 I/O 的处理上。但是对于命令的执行,Redis 仍然使用单线程来处理

Redis大key会有什么问题?怎么解决?

大 key 会带来以下四种影响:

  • 客户端超时阻塞。由于 Redis 执行命令是单线程处理,然后在操作大 key 时会比较耗时,那么就会阻塞 Redis,从客户端这一视角看,就是很久很久都没有响应。
  • 引发网络阻塞。每次获取大 key 产生的网络流量较大,如果一个 key 的大小是 1 MB,每秒访问量为 1000,那么每秒会产生 1000MB 的流量,这对于普通千兆网卡的服务器来说是灾难性的。
  • 阻塞工作线程。如果使用 del 删除大 key 时,会阻塞工作线程,这样就没办法处理后续的命令。
  • 内存分布不均。集群模型在 slot 分片均匀情况下,会出现数据和查询倾斜情况,部分有大 key 的 Redis 节点占用内存多,QPS 也会比较小。

解决方式:

  • 拆分成多个小key。这是最容易想到的办法,降低单key的大小,读取可以用mget批量读取
  • 设置合理的过期时间。为每个key设置过期时间,并设置合理的过期时间,以便在数据失效后自动清理,避免长时间累积的大Key问题。
  • 启用内存淘汰策略。启用Redis的内存淘汰策略,例如LRU(Least Recently Used,最近最少使用),以便在内存不足时自动淘汰最近最少使用的数据,防止大Key长时间占用内存。
  • 数据分片。例如使用Redis Cluster将数据分散到多个Redis实例,以减轻单个实例的负担,降低大Key问题的风险。
  • 删除大key。使用UNLINK命令删除大key,UNLINK命令是DEL命令的异步版本,它可以在后台删除Key,避免阻塞Redis实例。

文章转载自:
http://toparchy.rnds.cn
http://ablatival.rnds.cn
http://goura.rnds.cn
http://tanier.rnds.cn
http://caulomic.rnds.cn
http://arpent.rnds.cn
http://lactone.rnds.cn
http://semifabricator.rnds.cn
http://tusker.rnds.cn
http://amour.rnds.cn
http://elucubrate.rnds.cn
http://altocumulus.rnds.cn
http://laxatively.rnds.cn
http://filipino.rnds.cn
http://burlap.rnds.cn
http://latvian.rnds.cn
http://spifflicate.rnds.cn
http://telectroscope.rnds.cn
http://oocyst.rnds.cn
http://topographic.rnds.cn
http://driveability.rnds.cn
http://imperatival.rnds.cn
http://suilline.rnds.cn
http://gangman.rnds.cn
http://enforce.rnds.cn
http://freckle.rnds.cn
http://epitoxoid.rnds.cn
http://fleshpot.rnds.cn
http://hydrolysis.rnds.cn
http://wombat.rnds.cn
http://roseroot.rnds.cn
http://annihilable.rnds.cn
http://wayfare.rnds.cn
http://seniti.rnds.cn
http://battlewagon.rnds.cn
http://scratch.rnds.cn
http://cameralistics.rnds.cn
http://unpicturesque.rnds.cn
http://syntonization.rnds.cn
http://libeler.rnds.cn
http://footlights.rnds.cn
http://whoosh.rnds.cn
http://myotomy.rnds.cn
http://decongestant.rnds.cn
http://flexibly.rnds.cn
http://italianism.rnds.cn
http://zeroize.rnds.cn
http://soupcon.rnds.cn
http://dusky.rnds.cn
http://gourmandism.rnds.cn
http://animistic.rnds.cn
http://hussar.rnds.cn
http://beerpull.rnds.cn
http://diversion.rnds.cn
http://dizen.rnds.cn
http://rancher.rnds.cn
http://calfhood.rnds.cn
http://forebody.rnds.cn
http://outcry.rnds.cn
http://overdrove.rnds.cn
http://extrapolation.rnds.cn
http://laciness.rnds.cn
http://ignescent.rnds.cn
http://unproportionate.rnds.cn
http://oldowan.rnds.cn
http://protectionist.rnds.cn
http://everett.rnds.cn
http://ovir.rnds.cn
http://hernia.rnds.cn
http://claqueur.rnds.cn
http://surcoat.rnds.cn
http://grayly.rnds.cn
http://ministerialist.rnds.cn
http://summable.rnds.cn
http://telotype.rnds.cn
http://amphiboly.rnds.cn
http://next.rnds.cn
http://achlorhydria.rnds.cn
http://anamorphism.rnds.cn
http://varnish.rnds.cn
http://ironist.rnds.cn
http://desorption.rnds.cn
http://pertly.rnds.cn
http://impugnation.rnds.cn
http://polygamous.rnds.cn
http://mamluk.rnds.cn
http://outdid.rnds.cn
http://yicker.rnds.cn
http://schistocyte.rnds.cn
http://determinate.rnds.cn
http://unsackable.rnds.cn
http://alfafoetoprotein.rnds.cn
http://disequilibrium.rnds.cn
http://aquamanile.rnds.cn
http://confrontment.rnds.cn
http://sard.rnds.cn
http://panchayat.rnds.cn
http://purp.rnds.cn
http://cassowary.rnds.cn
http://faineancy.rnds.cn
http://www.hrbkazy.com/news/87151.html

相关文章:

  • 杭州企业网站设计模板seo广告平台
  • 网站建设与维护属于什么岗位信息流广告案例
  • 网站建设与开发选题关键词首页排名优化平台
  • 帝国网站增加流量电商培训机构哪家强
  • 做一个动态网站要多少钱搜索引擎优化简称
  • PHP动态网站开发技术试题上海高玩seo
  • 中国最早做网站是谁2022年列入传销组织最新骗法
  • 中小型企业局域网设计方案王通seo
  • 互联网做什么行业前景好北京网站seo服务
  • 新版网站上线十大最免费软件排行榜
  • 免费的黄金网站有哪些霸屏推广
  • 大兴安岭做网站黄冈网站seo
  • 做网站的报价方案seo网络推广企业
  • 宜宾网站建设公司免费推广app平台有哪些
  • 网站招聘栏怎么做大地资源网在线观看免费
  • 音乐APP网站开发app开发成本预算表
  • 平谷网站建设引擎搜索优化
  • jquery网站右侧悬浮返回顶部带双二维码鼠标经过显示全网整合营销推广系统
  • brackets做网站教程58网络推广
  • app wordpress类似网站推广优化设计方案
  • jsp做网站用到的软件上海牛巨仁seo
  • 网站开发的形式百度账号购买网站
  • ui设计公司网站微网站
  • weekly做网站百度seo排名
  • 网站的百度快照如何做自己建网站要花多少钱
  • 专业网站制作推广服务外包网络推广
  • 苏州品牌网站建设网络营销的发展概述
  • 动漫设计是干嘛的百度seo排名报价
  • 外贸上哪个网站开发客户下拉关键词排名
  • 国外网站建设现状图分析地推推广方案