java八股 redis

Redis篇-01-redis开篇_哔哩哔哩_bilibili

1.缓存穿透

 2.缓存击穿

 逻辑过期里的互斥锁是为了保证只有一个线程去缓存重建

3.缓存雪崩

4.双写一致性

4.1要求一致性(延迟双删/互斥锁)

延迟双删无法保证强一致性

 那么前两步删缓和更新数据库哪个先呢?都有问题

双删是为了保证再次删除旧的缓存(上图的两种情况旧缓存)

延迟是因为保证db的主从同步,如果提前删除,那么有查询过来到数据库从节点,里面还没同步,那么查到了旧数据,还把旧数据写到缓存里,等于白删了。

后删虽然无法保证DB主从同步期间查询的有效性,但是能保证删除之后,再查询一定是新数据。

延迟双删无法保证强一致性

互斥锁能够保证强一致性,但是效率低--->用读写锁

4.2要求高可用,最终一致性(异步通知)

5.redis持久化 RDB + AOF

aof只记录写命令,不记录读命令。

bgwrite会屏蔽连续的修改,只记录同一个记录的最后一次修改

aof自动记录频率 

 

6.redis 的key过期策略(过期删除)

7.redis 的key淘汰策略(内存满了删除)

8.分布式锁

  Redis篇-10-redis分布式锁-实现原理(setnx、redisson)_哔哩哔哩_bilibili

redisson重入重试看门狗

9.分布式锁主从一致性-->红锁RedLock

主节点加锁宕机,从节点变主节点但是锁没来得及更新过来,那么其他线程可以获取锁。

但是红锁一般不用,性能不好又复杂。

redis一般保证高可用性和最终一致性,不怎么用红锁,因为服务器宕机是小概率

如果要保证强一致,用zookeeper。

10.redis集群方案(主从、哨兵、分片)

10.1主从模式(高并发)

 redis主从如何同步(全量同步,增量同步)

10.2哨兵模式(高可用)

10.2.1脑裂

主节点和从节点断联,仍然接收到客户端数据。但哨兵选出了新的主节点,老主节点降成从节点并被主从复制,那么这段时间的操作会丢失。

意思就是你主节点和从节点的联系有问题,那你就别写入

10.2.2单redis读(10万)写(8万)并发能力

 

10.3分片集群

11.redis为什么快

11.1 I/O多路复用

11.2 阻塞I/O

11.3非阻塞I/O 

 11.4 多路复用I/O

多路复用IO会用一个select去轮询监听一个socket集合,一个socket能代表一个需要拷贝的数据,在第一阶段谁先就绪就谁来,可以看成并行,先来先服务,第二阶段循环调用recvfrom去处理各个socket。

而阻塞IO和非阻塞IO每个数据都有顺序(串行),即使别的数据好了只要当前没有数据也会死等这一个数据。导致效率低。

 11.5Redis网络模型

redis速度主要受网络IO影响,所以易受影响的部分加了多线程升级,但是最终命令执行还是串行的。

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

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

相关文章

车手互联是不是杀手锏,来听听一家头部手机厂的座舱方法论

作者 |Amy 编辑 |德新 十年前, 苹果CarPlay和谷歌Android Auto相继推出,手机与车机两个此前貌似无关的品类,从此开始产生交集。 科技巨头看好车机的硬生态,汽车大鳄们则垂涎于科技圈的软实力。 CarPlay和Android Auto的出现&am…

锐捷配置重发布RIP进OSPF中

一、实验拓扑 二、实验目的 使用两种动态路由协议,并使两种协议间的路由可以传递 三、实验配置 第一步:配置全网基本IP R1 Ruijie>enable Ruijie#configure terminal Ruijie(config)#interface gigabitEthernet 0/0 Ruijie(config-if-GigabitEthe…

使用 Postman 进行并发请求:实用教程与最佳实践

背景介绍 最近,我们发起了一个在线图书管理系统的项目。我负责的一个关键模块包括三个主要后台接口: 实现对books数据的检索。实施对likes数据的获取。通过collections端点访问数据。 应对高流量的挑战 在设计并部署接口时,我们不可避免地…

基于计算机视觉的棋盘图像识别

本期我们将一起学习如何使用计算机视觉技术识别棋子及其在棋盘上的位置 我们利用计算机视觉技术和卷积神经网络(CNN)为这个项目创建分类算法,并确定棋子在棋盘上的位置。最终的应用程序会保存整个图像并可视化的表现出来,同时输出…

Java多线程技术四——定时器

1 定时器的使用 在JDK库中Timer类主要负责计划任务的功能,也就是在指定的时间开始执行某一个任务,Timer类的方法列表如下: Timer类的主要作用就是设置计划任务,封装任务的类却是TimerTask,该类的结构如下图 因为TimerT…

Http---查看HTTP协议的通信过程

1. 谷歌浏览器开发者工具的使用 首先需要安装Google Chrome浏览器,然后Windows和Linux平台按F12调出开发者工具, mac OS选择 视图 -> 开发者 -> 开发者工具或者直接使用 altcommandi 这个快捷键,还有一个多平台通用的操作就是在网页右击选择检查。…

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…

Vue2从源码角度来回答一些常见的问题

1.请说一下Vue2响应式数据的理解(先知道基本的问题在哪里,源码的角度来回答,用的时候会有哪些问题) 可以监控一个数据的修改和获取操作。针对对象格式会给每个对象的属性进行劫持 Object.defineProperty 源码层面 initData ->…

嵌入式开发——PWM高级定时器

学习目标 加强掌握PWM开发流程理解定时器与通道的关系掌握多通道配置策略掌握互补PWM配置策略掌握定时器查询方式掌握代码抽取优化策略掌握PWM调试方式学习内容 需求 点亮8个灯,采用pwm的方式。 定时器 通道 <

5种经典排序算法,每个程序员都应该知道

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 有没有想过当您应用从低到高、从高到低或按字母顺序等过滤器时&#xff0c;亚马逊或任何其他电子商务网站中的产品如何排序&#xff1f;排序算法对于此类网站起着至…

分布式事务2PC二阶段提交详解

文章目录 概述和概念执行过程和工作流程特点优劣势应用场景总结demo代码样例 概述和概念 二阶段提交&#xff08;2PC&#xff09;是一种用于确保在分布式系统中的所有节点在进行事务提交时保持一致性的算法 二阶段提交&#xff08;Two-Phase Commit&#xff0c;2PC&#xff09…

PCIe surprise down异常与DPC功能分析-part1

在PCIe系统中&#xff0c;多个设备通过PCIe链路连接在一起&#xff0c;形成一个复杂的互连网络。这些设备可能包括CPU、GPU、网卡、存储控制器等。由于PCIe是一种高速、低延迟的总线标准&#xff0c;任何设备故障或错误都可能迅速传播到整个系统&#xff0c;导致数据损坏、系统…