redis高级篇(1)

news2024/12/23 5:47:41

分布式缓存

单节点redis的问题:

1)数据丢失的问题,redis是基于内存来进行存储的,当服务器重启的时候可能会丢失数据

2)无法满足高并发场景

3)如果redis宕机,那么这个服务不可用,所以就需要有一种自动的故障恢复手段,必须保证redis集群出现故障,是不能影响其他集群的使用的,边服务边修复

4)Redis是基于内存来进行存储的,单个节点存储的数据是很难满足海量数据的需求的

4.1)数据丢失问题:实现Redis持久化

4.2)并发能力问题:搭建主从集群,实现读写分离,从节点是具有很多个的,那么从节点之间就是一种负载均衡的策略,而主从之间又需要做读写分离,是应对数据库中读和写的这种互斥,读和写之间就不会相互影响,还要依靠哨兵机制来做健康检测和故障恢复;

4.3)存储能力问题:搭建分片集群,利用插槽机制来实现动态扩容

一)Redis持久化方式---RDB 

RDB全称为Redis Database Backup file也被称之为是Redis数据快照,简单来说就是把内存中的所有数据都保存到磁盘里面,当Redis进行实例故障重启之后,再从磁盘读取快照文件,恢复数据,快照文件又被称为是RDB文件,默认是保存在Redis的当前运行目录

1)save:就成功完成了RDB操作,这个操作是由Redis的主进程来执行命令的,此时他会阻塞所有命令,这个时候如果由用户来进行读操作,无法执行成功,RDB是将数据写入到磁盘里面,但是磁盘的IO往往是比较慢,如果你的数据量比较大,那么执行这个操作的耗时就会比较久,等待他执行完成,最终才会返回一个OK,此时才算结束,主进程才有能力处理其他的命令;主要是适用于Redis用完了,马上就要停机,不想玩了,提及时会自动进行RDB;

2)bgsave:redis此时会立即返回一个Background saving started,后台保存开始了,redis会是开启一个子进程来进行执行RDB操作,避免主进程来受到影响,这种方式比较适用于Redis在进行运行的时候去做;

3)Redis内部有触发RDB的机制,可以在redis.conf文件中找到,格式如下:

save 5 1代表5s内只要有一个Key被修改就会自动执行RDB操作,这样每隔一段时间就进行一次RDB那么数据的持久性就可以得到保障了,在服务器关机前会执行RDB操作;

4)但是如果说在5s之内我进行数据的保存工作,这时刚好没持久化,服务器宕机,那么数据会丢失,如果你RDB设置时间太长你没有及时在服务器宕机之前进行持久化操作,那么数据会丢失,但是太短也不行,RDB执行频率过高,如果数据量特别大,10G写入到磁盘,时间IO会吃满,所以使用RDB是存在问题的;

5)RDB中的其他配置也是可以在redis.conf中进行配置的

1)在bgsave开始的时候,会fork主进程得到子进程,子进程共享主进程中的内存数据,完成fork之后读取内存数据写入到RDB文件里面,主进程会开启一个子进程来完成对内存数据的读取并写入到RDB文件中,几乎做到对主进程的0阻塞,fork主进程得到子进程的过程是阻塞的,此时主进程只能创建子进程,不能接受用户发送的其他命令,所以说fork的速度要足够快,避免阻塞太长时间,才能让主进程尽快地去完成用户的请求

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

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

相关文章

从裸机启动开始运行一个C++程序(一)

前言 对于一个C程序员来说,可能更多是是每天都在跟各种上层语义、设计模式、软件方法等等在打交道。但对于「一个C程序是如何运行在机器上的」这件事可能会比较陌生。有时,遇到一些问题,在宏观角度看起来可能比较难以解释,但其实…

activiti6是使用,或签,会签

会签:指同一个审批节点设置多个人,如ABC三人,三人会同时收到审批,需全部同意之后,审批才可到下一审批节点; 或签:也有叫“竞签”、“串签”:指同一个审批节点设置多个人,…

电脑上删除掉的文件怎么恢复?一文告诉你详细恢复方法!

对于不太会整理电脑的用户来讲,电脑上的文件一旦保存多了,不但会使得电脑看上去很杂乱,还会在我们需要寻找某一个文件的时候,半天都找不到。 所以,对于一些可能不会再需要的文件,我们会选择直接删除&#x…

Dart 3.0 语法新特性 | 类型修饰符 Class modifiers

theme: cyanosis 在 dart 3.0.0 之后,对类型的修饰符进行了拓展,现在类型的修饰符有: | 名称 | 作用 | | --- | --- | | mixin | 混入类修饰符 | | sealed | 密封可枚举的子类型 | | abstract | 抽象类修饰符 | | final | 一定程度上关闭派生…

《测试开发》测试启蒙

文章目录 测试是什么调试和测试的区别 什么是需求需求的定义需求的特征测试人员眼里的需求是什么如何深入了解需求 测试用例什么是测试用例为什么有测试用例 bug如何描述一个bug如何定义bug的级别bug的生命周期 软件测试的生命周期 👑作者主页:Java冰激凌…

理解神经网络的注意力机制(Attention)及PyTorch 实现

刚刚结束的 2022 年对于人工智能的许多进步来说是不可思议的一年。最近 AI 中的大多数著名地标都是由称为变形金刚的特定类别模型驱动的,无论是 chatGPT 的令人难以置信的进步,它席卷了世界,还是稳定的扩散,它为您的智能手机带来了类似科幻小说的功能。即使是 Tesla 的自动…

100种思维模型之联脑破界思维模型-64

前面我们分享过破界思维模型,即要不断打破固有认知边界,用变化的眼光看待一切事物的思维模型。 今天我们介绍一个破界方法的思维模型,一个告诉我们可通过联脑学习,打破独立大脑带来边界的思维模型。 01、何谓联脑破界思维模型 一…

crow-han(基于go-micro框架的微服务脚手架)-01-快速启动(简介、快速启动、接口测试)

文章目录 1. 简介1.1 包含内容1.2 swagger展示 2. 快速启动2.1 下载2.2 环境变量配置2.3 goland配置2.5 启动2.6 查看结果 3. swagger 接口测试3.1 url3.2 认证3.2.1 获取token3.2.2 Bearer 认证 3.3 测试接口(已创建用户为例) 1. 简介 一个基于go-micr…

测试4年,跳槽一次涨8k,我跳了3次···

最近有人说,现在测试岗位初始工资太低了,有些刚刚入行的程序员朋友说自己工资连5位数都没有.....干了好几年也没怎么涨。看看别人动辄月薪2-3万,其实我想说也没那么难。说下如何高效地拿到3w。 1.暂且把刚入行的条件设低些吧,大专…

大模型综述来了!一文带你理清全球AI巨头的大模型进化史

夕小瑶科技说 原创 作者 | 小戏,Python 如果自己是一个大模型的小白,第一眼看到 GPT、PaLm、LLaMA 这些单词的怪异组合会作何感想?假如再往深里入门,又看到 BERT、BART、RoBERTa、ELMo 这些奇奇怪怪的词一个接一个蹦出来&#xf…

python list 逆序的方法

在 Python中,使用 list作为基本的数据类型是非常方便的,也是 Python中最常见的数据结构之一。那么对于 list进行逆序操作时,我们应该怎么做呢?下面就一起来看看吧。 首先要注意,在使用 list逆序时,它会自动…

【Java】EasyExecl数据导入

【Java】EasyExecl数据导入 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助…

视频格式、视频方式区别、一个视频播放的全过程

一:直播和点播的区别及有的格式 1:视频直播的播放内容是媒体直播流的形式,不存在物理文件,视频画面和声音信息都是实时采集、传输和播放的。如果没有录制模块,视频画面和声音播放完毕就消失了,不能提供二次…

并行分布式计算 并行计算性能评测

文章目录 并行分布式计算 并行计算性能评测基本性能指标参数CPU 基本性能指标存储器性能并行与存储开销 加速比性能定律Amdahl 定律Gustafson 定律Sun 和 Ni 定律加速比讨论 可括放性评测标准等效率度量标准等速度度量标准平均延迟度量标准 基准评测程序(Benchmark&…

甘特图控件DHTMLX Gantt入门使用教程【引入】:用Node.js实现Gantt(下)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求,具备完善的甘特图图表库,功能强大,价格便宜,提供丰富而灵活的JavaScript API接口,与各种服务器端技术&am…

Linux多路转接之select

文章目录 一、IO的理解二、五种IO模型1.阻塞式IO2.非阻塞式IO3.信号驱动式IO4.IO多路转接5.异步IO6.五种IO模型的总结 三、非阻塞式IO1.fcntl函数 四、IO多路转接之select的介绍五、编写select服务器1.将获取连接时设置为select多路转接2.获取连接成功后的读取数据 六、select多…

商家订单之Java版SpringCloud+SpringBoot+Mybatis+Vue+Uniapp 分布式、微服务、多商家入驻b2b2c电子商务云平台

一个好的SpringCloudSpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案?以下是我结合公司的产品做的总结,希望可以帮助到大家! 搜索体验小程序:海哇 1. 涉及平台 平台管理、商家端(PC端、手机端)、买…

linu0.12-9-blk_drv

[394页] 第9章 块设备驱动程序 395–9-1-总体功能 395–9-1-1-块设备请求项和请求队列 397–9-1-2-块设备访问调度处理 397–9-1-3-块设备操作方式 398–9-2-blk.h文件 398–9-2-1-功能描述 399–9-2-2-代码注释 403–9-3-hd.c程序 403–9-3-1-功能描述 405–9-3-2-代码注释…

离散数学_九章:关系(6)

🪐9.6 偏序 1、⛺偏序关系和偏序集⛲偏序关系⛲偏序(关系)的例子 a. “大于或等于” 关系b. “整除” 关系c. “包含” 关系 🎬偏序集🎬可比性(comparability) " ≼ " 符号a. 可比 &a…