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.mzph.cn/news/242023.shtml

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

相关文章

基于Java SSM框架实现实现定西扶贫惠农推介志愿者系统项目【项目源码+论文说明】

基于java的SSM框架实现定西扶贫惠农推介志愿者系统演示 摘要 扶贫工作是党中央、国务院的一项重要战略部署。党政机关定点扶贫是中国扶贫开发战略部署的重要组成部分,是新阶段扶贫开发的一项重大举措,对推动贫困地区经济社会的发展有着积极的意义。 本…

Ethercat“配置从站地址”报文分析(0x0010:0x0011)

基于IgH主站接了3个从站,分析报文。 涉及的从站寄存器:Configured Station Address 0x0010:0x0011。 使用场景举例: IgH启动后,通过“配置从站地址”报文将所有从站地址清零,然后通过APWR指令“配置从站地址”报文&a…

TIA博途Wincc_通过VBS脚本实现电机风扇或水泵旋转动画的具体方法

TIA博途Wincc_通过VBS脚本实现电机风扇或水泵旋转动画的具体方法 前面和大家介绍了通过在PLC中编程,结合HMI的图形IO域实现电机风扇或水泵旋转动画的具体方法,详细内容可参考以下链接: TIA博途Wincc中制作电机风扇或水泵旋转动画的具体方法示例 本次和大家分享通过VBS脚本实…

windows下使用vccode+cmake编译cuda程序

1、在vscode中安装Nsight Visual Studio Code Edition 在vscode中安装插件能够对cuda的代码进行语法检查 2、编写cuda程序 #include <iostream>__global__ void mykernelfunc(){}; int main() {mykernelfunc<<<1,1>>>();std::cout << "hel…

Tiny Object Detection

文章目录 RFLA: Gaussian Receptive Field based Label Assignment for Tiny Object Detection&#xff08;ECCV2022&#xff09;Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection&#xff08;CVPR2023&#xff09;TOD-CMLNN&#xff08;2023&#xff09; …

OpenSource - SCM服务管理平台

文章目录 官方网址文档下载版本功能解决了哪些问题使用对象优势Linxu版本scm-dev deb服务列表 Windows版本scm-dev 服务列表scm-all 服务列表scm-jdk 服务列表scm-springboot 精简版本服务列表scm-springboot 服务列表scm-tomcat 服务列表 SCM 截图 官方网址 https://scm.chus…

RabbitMQ入门指南(七):生产者可靠性

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消息丢失的可能性 1.发送消息时丢失&#xff1a; 2.MQ导致消息丢失&#xff1a; 3.消费者处理消息时消息丢失&#xff1a; 二、生产者可靠性 1.生产者重试机制 2.生产者确认机制 总结 前言 Ra…

Plantuml之对象图语法介绍(十九)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

VSCode运行时弹出powershell

问题 安装好了vscode并且装上code runner插件后&#xff0c;运行代码时总是弹出powershell,而不是在vscode底部终端 显示运行结果。 解决方法 打开系统cmd ,在窗口顶部条右击打开属性&#xff0c;把最下面的旧版控制台选项取消&#xff0c;即可

Flink系列之:Checkpoints 与 Savepoints

Flink系列之&#xff1a;Checkpoints 与 Savepoints 一、概述二、功能和限制 一、概述 从概念上讲&#xff0c;Flink 的 savepoints 与 checkpoints 的不同之处类似于传统数据库系统中的备份与恢复日志之间的差异。 Checkpoints 的主要目的是为意外失败的作业提供恢复机制。 …

【Hadoop】Zookeeper是什么?怎么理解它的工作机制?

Zookeeper是什么Zookeeper工作机制 Zookeeper是什么 Zookeeper是一个开源的分布式的&#xff0c;为别的分布式矿建提供协调服务的Apache项目。分布式简单地理解就是多台机器共同完成一个任务。 Zookeeper工作机制 从设计模式的角度来理解&#xff0c;是一个基于观察者模式设…

LV.13 D6 Linux内核安装及交叉编译 学习笔记

一、tftp加载Linux内核及rootfs 1.1 uboot内核启动命令 bootm 启动指定内存地址上的Linux内核并为内核传递参数 bootm kernel-addr ramdisk-addr dtb-addr 注: kernel-addr: 内核的下载地址 ramdisk-addr: 根文件系统的下载地址 …

postMessage——不同源的网页直接通过localStorage/sessionStorage/Cookies——技能提升

最近遇到一个问题&#xff0c;就是不同源的两个网页之间进行localstorage或者cookie的共享。 上周其实遇到过一次&#xff0c;觉得麻烦就让后端换了种方式处理了&#xff0c;昨天又遇到了同样的问题。 使用场景 比如从网页A通过iframe跳转到网页B&#xff0c;而且这两个网页…

工具系列:PyCaret介绍_Fugue 集成_Spark、Dask分布式训练

文章目录 1、分布式计算场景&#xff08;1&#xff09;分类&#xff08;2&#xff09;回归&#xff08;3&#xff09;时间序列 2、分布式应用技巧(1)一个更实际的案例(2) 在设置中使用lambda而不是dataframe(3) 保持确定性(4) 设置n_jobs(4)设置适当的批量大小(5) 显示进度(6)自…

java旅游攻略管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web旅游攻略管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql…

Unity新动画系统之动画层和动画遮罩

Unity新动画系统之动画层和动画遮罩 一、介绍二、动画骨骼遮罩层使用第一种就是create一个avatar Mask,如下&#xff1a;第二种遮罩&#xff0c;就是直接在动画剪辑的属性上更改&#xff0c;如图一为humanoid类型的动画剪辑属性&#xff1a; 一、介绍 之前分享过FSM动画控制系…

Python算法例25 落单的数Ⅲ

1. 问题描述 给出2n2个非负整数元素的数组&#xff0c;除其中两个数字之外&#xff0c;其他每个数字均出现两次&#xff0c;找到这两个数字。 2. 问题示例 给出[1&#xff0c;2&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;4&#xff0c;5&#xff0c;3]&#xff0c…

小白也能搞定的Python选择排序

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;我是彭涛&#xff0c;今天为大家分享 小白也能搞定的Python选择排序。全文3300字&#xff0c;阅读大约10分钟 选择排序&#xff08;Selection Sort&#xff09;是一种简单但有效的排序算法&#xff0c;它通过逐步…

掌握函数式组件:迈向现代化前端开发的关键步骤(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

数据孤岛:一场数据的独立战争

在当今数字化的时代&#xff0c;数据已成为企业和组织最宝贵的资产之一。然而&#xff0c;尽管数据的价值被广泛认可&#xff0c;但数据的分散和孤立问题却仍然存在&#xff0c;这就是所谓的数据孤岛。本文将重点分析什么是数据孤岛、数据孤岛的危害以及解决数据孤岛的传统和创…