自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(76)
  • 收藏
  • 关注

原创 基于Vgg-Unet模型自动驾驶场景检测

VGG全称是Visual Geometry Group属于牛津大学科学工程系,其发布了一些列以VGG开头的卷积网络模型,可以应用在人脸识别、图像分类等方面,VGG的输入被设置为大小为224x244的RGB图像。有3个VGG全连接层,根据卷积层+全连接层的总数,可以从VGG11到VGG19变化。此外,VGG网络后面没有每个卷积层后面的池化层,也没有分布在不同卷积层下的总共5个池化层。与CNN不同的之处在于CNN是图像级的分类,而unet是像素级的分类,其输出的是每个像素点的类别。

2023-09-04 18:30:44 974

原创 6.Go语言学习笔记-结合chatGPT辅助学习Go语言底层原理

从上图可以看到全局变量n是存在main包的静态基地址上(SB),被不同的函数和代码块共享访问,SB 是静态基地址的缩写,它是指向静态基地址的寄存器。可以看到上述汇编指令中,第一行从参数p中取地址值的操作没变化,只是从AX寄存器中取值的时候,命令有MOVQ(8字节)变为MOVL(4字节),可见不同类型的指针地址本身是一样的类型(无符号整型)LEAQ 指令将全局变量 n 的有效地址存储到 AX 寄存器中,这样 AX 寄存器就包含了 n 变量的地址,可以用于读取或写入该变量的值。

2023-05-13 04:22:02 784

原创 Go学习笔记-Go编译器简介&词法和语法解析

Go学习笔记-Go编译器简介1.编译器[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CI0wf8xz-1635941506553)(/uploads/go/images/m_8fd65022e01c0be6febd59689bbfcf45_r.png)]1.1 三阶段编译器编译器前端: 主要用于理解源代码、扫描解析源代码并进行语义表达IR: Intermediate Representation,可能有多个,编译器会使用多个 IR 阶段、多种数据结构表示程序,并在

2021-11-03 20:28:51 3929

原创 MySQL学习笔记-幻读有什么问题?

MySQL学习笔记-幻读有什么问题?1.表结构CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`)) ENGINE=InnoDB;Tips:下面介绍的操作内容都是 可重复读 隔离级别。2.插入实验数据insert into t values(0,0,0),(5,5,5),

2021-03-06 21:50:47 191

原创 MySQL学习笔记-索引失效的情况

MySQL学习笔记-索引失效的情况1. 表结构CREATE TABLE `t` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `word` varchar(16) NOT NULL DEFAULT '', `num` int unsigned NOT NULL DEFAULT '0', `date` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `word` (`word`), KEY

2021-03-06 21:48:34 337

原创 MySQL学习笔记-order by工作原理

文章目录MySQL学习笔记-order by工作原理1.表结构2.插入实验数据3.执行排序查询4.explain 分析5.全字段排序流程6.rowid 排序流程7.优化建议MySQL学习笔记-order by工作原理1.表结构CREATE TABLE `t` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL DEFAULT '',

2021-02-21 01:26:47 151

原创 MySQL学习笔记-日志和索引相关问题小结

文章目录MySQL学习笔记-日志和索引相关问题小结1.笔记图2.日志相关问题2.1 在两阶段提交的不同瞬间,MySQL 如果发生异常重启,是怎么保证数据完整性的?2.2 commit 的概念混淆说明3.业务设计问题MySQL学习笔记-日志和索引相关问题小结1.笔记图2.日志相关问题2.1 在两阶段提交的不同瞬间,MySQL 如果发生异常重启,是怎么保证数据完整性的?情况一:描述:若写入 redo log 处于 prepare 阶段之后、写 binlog 之前,发生了崩溃 (crash)现象

2021-02-10 23:18:32 151 1

原创 MySQL学习笔记-不同count统计性能的比较

文章目录MySQL学习笔记-不同count统计性能的比较1.笔记图2.count(*) 的实现方式3.InnoDB count(*) 优化4.count(*) 业务层优化5.InnoDB 不同的 count 用法6.课后问题MySQL学习笔记-不同count统计性能的比较在做业务开发的时候,经常会使用 count() 函数对满足条件的结果集统计数量,但执行 select count(*) from t 这种语句的时候会很慢,而 count(*)、count(1)、count(字段)、count(主键id

2021-02-08 21:55:31 279

原创 MySQL学习笔记-如何有效的回收表空间

文章目录MySQL学习笔记-如何有效的回收表空间1.笔记图2.InnoDB 表说明3.数据库表的空间回收4.数据删除流程5.数据 "空洞"6.如何去掉表数据 "空洞"7.Online DDL8.表操作命令说明9.课后问题MySQL学习笔记-如何有效的回收表空间1.笔记图2.InnoDB 表说明表结构:在 MySQL 8.0 版本以前,表结构是存在以 .frm 为后缀的文件里MySQL 8.0 版本,则已经允许把表结构定义放在系统数据表中了表数据:表数据既可以存在共享表空间里,也可以是单独

2021-02-08 21:54:27 243

原创 MySQL学习笔记- 刷脏页(flush)对性能的影响

MySQL学习笔记- 刷脏页(flush)对性能的影响MySQL 有时候会突然变得很慢,但持续时间又特别短,而且很难复现这种情况,这时候很有可能就是 MySQL 在刷脏页,这篇文章来学习一下 MySQL 中刷脏页的过程,可以更好的优化刷脏页对性能的影响。1.笔记图2.概念说明flush:把内存里的数据写入磁盘的过程脏页:当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为脏页干净页:内存数据写入到磁盘后,内存和磁盘上的数据页的内容就一致了,称为干净页Tips:MySQL 突然瞬

2021-02-06 23:38:47 731

原创 MySQL学习笔记-优化器选索引的因素

文章目录MySQL学习笔记-优化器选索引的因素1.笔记图2.优化器的逻辑3.索引选择异常的优化MySQL学习笔记-优化器选索引的因素1.笔记图2.优化器的逻辑功能作用:选择索引的目的,是找到一个最优的执行方案,并用最小的代价去执行语句在数据库里面,扫描行数是影响执行代价的因素之一扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的 CPU 资源越少选择索引考虑的因素:扫描行数:MySQL 在真正开始执行语句之前,并不能精确地知道满足这个条件的记录有多少条,只能根据统计信息来估算记录

2021-02-06 23:37:43 189 1

原创 MySQL学习笔记-change buffer 和 redo log

文章目录MySQL学习笔记-change buffer 和 redo log1.笔记图2.索引类型对查询性能的影响3.索引类型对更新性能的影响4.普通索引和唯一索引该怎么选择5.change buffer 和 redo logMySQL学习笔记-change buffer 和 redo log在给 MySQL 建立二级索引的时候,从唯一性约束来说可以分为普通索引和唯一索引,但你知道这两种索引在查询和更新数据的时候性能有什么区别吗?然后 change buffer 和 redo log 的联系是什么呢?这

2021-02-03 01:12:47 921 1

原创 MySQL学习笔记-MVCC数据多版可见性

文章目录MySQL学习笔记-MVCC数据多版可见性1.笔记图2.事务的执行流程3.两个视图概念4.MVCC 工作原理5.当前读6.查询数据可见性规则MySQL学习笔记-MVCC数据多版可见性InnoDB 最大的特点之一就是支持事务,而不同时刻启动的事务对于其他事务来说,可见性不一样,比如可重复读隔离级别下,启动一个事务,查询数据之后会创建一个一致性视图,该事务提交之前的查询都将依赖于这个一致性视图,就好像给所有数据 拍了一个快照 一样,这篇文章就学习一下 MVCC 数据的多版本并发控制是如何实现秒级快照

2021-02-02 09:38:07 693

原创 MySQL学习笔记-死锁和死锁检测

文章目录MySQL学习笔记-死锁和死锁检测1.笔记图2.行锁说明3.两阶段锁协议4.死锁和死锁检测5.死锁检测优化思路MySQL学习笔记-死锁和死锁检测InnoDB 引擎相比于 MyISAM 引擎,有一个优点就是 InnoDB 引擎支持行锁,而 MyISAM 引擎在做并发控制时只能使用表锁,这篇文章学习一下 InnoDB 引擎中死锁是如何产生的。1.笔记图2.行锁说明行锁就是针对数据表中行记录的锁MySQL 行锁是在引擎层自己实现的InnoDB 支持行锁,MyISAM 引擎不支持行锁,这也

2021-01-31 00:33:06 146

原创 MySQL学习笔记-如何安全的给小表加字段

文章目录MySQL学习笔记-如何安全的给小表加字段1.笔记图2.全局锁3.数据逻辑备份的方式4.表级锁5.给一个小表加个字段,导致整个库挂了6.如何安全地给小表加字段?7.课后问题MySQL学习笔记-如何安全的给小表加字段如果要给一个大表加字段,你一般都会非常谨慎小心,以免对线上业务造成影响,但实际上给一个小表加字段不慎操作也会导致线上业务出问题,这篇文章主要学习一下 MySQL 中 MDL 锁对性能的影响,防止采坑。1.笔记图2.全局锁全局锁就是对整个数据库实例加锁命令:Flush t

2021-01-29 23:27:59 323

原创 MySQL学习笔记-主键索引和二级索引

文章目录MySQL学习笔记-主键索引和二级索引1.笔记图2.索引的常见模型3.InnoDB 的索引模型4.主键索引和普通索引查询的区别5.如何选择主键字段6.笔记图7.回表过程8.最左前缀原则MySQL学习笔记-主键索引和二级索引在 MySQL 索引是为了提高查询效率的,但实现索引的的方式有很多,可以用于提高读写效率的数据结构也很多,常见的数据结构有哈希表、有序数组、搜索树,而 MySQL 中的索引又分为主键索引和二级索引,这篇文章就来学习一下 主键索引 和 二级索引。1.笔记图2.索引的常见模型

2021-01-27 00:19:59 2206 1

原创 MySQL学习笔记-事务的隔离性

文章目录MySQL学习笔记-事务的隔离性1.笔记图2.事务3.隔离级别4.什么时候会创建视图5.事务隔离的实现6.事务的启动方式MySQL学习笔记-事务的隔离性最经典的事务相关的例子就是转账,小明向小红转 100 元,小明账户减 100,小红账户加 100,对于这一组操作,必须要保证要么都成功,要么都失败,而 MySQL 的事务具有 ACID 特性,其中隔离性是最难理解的,这篇文章主要来熟悉一下 MySQL 的隔离性,熟悉隔离性可以帮助后面学习多版本并发控制 (MVCC) 原理。1.笔记图2.事务

2021-01-26 09:26:01 110

原创 MySQL学习笔记-redo log 和 binlog&两阶段提交

文章目录MySQL学习笔记-redo log 和 binlog&两阶段提交1.笔记图2.一条更新语句是如何被执行的3.redo log4.binlog5.为什么要有两份日志?6.更新语句内部执行流程7.两阶段提交MySQL学习笔记-redo log 和 binlog&两阶段提交前面学习了一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎,而一条更新语句的执行流程也会按照查询查询语句的流程走一遍,但更新语句会涉及到两个日志模块,分别是 redo lo

2021-01-24 23:56:01 689 2

原创 Redis学习笔记-Codis 和 Redis Cluster 的区别

文章目录Redis学习笔记-Codis 和 Redis Cluster 的区别1.笔记图2.Codis 集群的 4 类关键组件3.Codis 是如何处理请求的?4.Codis 的关键技术原理4.1 数据如何在集群里分布?4.2 数据、Slot 、 codis server 的映射关系5.Codis集群扩容和数据迁移5.1 Codis 集群扩容5.2 Codis 集群数据迁移6.如何保证可靠性7.切片集群方案选择建议Redis学习笔记-Codis 和 Redis Cluster 的区别之前学习过 Redi

2021-01-24 01:24:24 2084

原创 Redis学习笔记-秒杀活动中Redis的作用

文章目录Redis学习笔记-秒杀活动中Redis的作用1.笔记图2.秒杀活动三阶段3.秒杀对Redis的两个要求4.高并发下Redis如何库存信息的正确5.和高并发相关的处理Redis学习笔记-秒杀活动中Redis的作用1.笔记图2.秒杀活动三阶段秒杀活动前用户会不断刷新商品详情页,这会导致详情页的瞬时请求量剧增把商品详情页的页面元素静态化,然后使用 CDN 或是浏览器把这些静态化的元素缓存起来秒杀活动开始大量用户点击商品详情页上的秒杀按钮,会产生大量的并发请求查询库存为了支撑大量高并

2021-01-22 09:58:38 711

原创 Redis学习笔记-并发控制&分布式锁

文章目录Redis学习笔记-并发控制&分布式锁1.笔记图2.Redis两种应对并发访问的方法3.并发访问控制中需要对什么进行控制?4.Redis 的两种原子操作方法5.Redis实现分布式锁6.分布式锁算法(Redlock)Redis学习笔记-并发控制&分布式锁在使用 Redis 时,遇到大流量时,不可避免地会遇到并发问题,多个用户对缓存在 Redis 中的商品信息并发更新,如果没有对并发修改或写入操作做很好的控制,就可能会对业务造成严重的错误,这篇文章学习一下 Redis 中的原子操作

2021-01-20 22:11:47 156

原创 Redis学习笔记-如何应对缓存雪崩、击穿、穿透

文章目录Redis学习笔记-如何应对缓存雪崩、击穿、穿透1.笔记图2.什么是缓存雪崩、缓存击穿、缓存穿透?3.应对方案Redis学习笔记-如何应对缓存雪崩、击穿、穿透1.笔记图2.什么是缓存雪崩、缓存击穿、缓存穿透?缓存雪崩描述:缓存雪崩是指短时间内大量的应用请求无法在Redis缓存中处理,应用将大量请求发送到数据库层,导致数据库层的压力激增原因:缓存中有大量数据同时过期,导致大量请求数据库Redis 实例宕机缓存击穿描述:某个访问非常频繁的热点数据,无法在缓存中处理,

2021-01-19 14:10:23 116

原创 Redis练习-模拟一个抢红包系统

文章目录Redis练习-模拟一个抢红包系统1.需求描述2.新建红包3.抢红包Redis练习-模拟一个抢红包系统前面学习过 Redis 的一些基础知识,为了达到学以致用的目的,加深和巩固对 Redis 的理解,这篇文章模拟微信抢红包,设计一个简单的抢红包系统。1.需求描述应用场景描述:假设某微信群有:10000人某土豪发红包: 1000 元红包个数: 10 个分配规则:发 1000 元,随机分成 10 个红包红包过期时间 24 小时新建红包规则:自定义红包个数范围 1~100 个 ,金

2021-01-19 14:09:05 201

原创 Redis学习笔记-缓存和数据库的数据不一致

文章目录Redis学习笔记-缓存和数据库的数据不一致1.笔记图2.数据一致性是啥意思?3.写回策略4.Redis缓存类型5.数据不一致情况6.缓存和数据库数据操作原子性7.解决数据不一致问题Redis学习笔记-缓存和数据库的数据不一致只要在业务中使用缓存,就必然会面对缓存和数据库之间的一致性保证问题了,这也是 Redis 缓存应用中的必答题,如果某些业务场景数据不一致,就会导致严重的错误,比如某个商品库存信息在 Redis 中和数据库中不一致,这就会导致用户下单操作出现严重错误,这个是在业务上无法接受的

2021-01-17 10:54:09 679

原创 Redis学习笔记-缓存容量&淘汰机制核心思想

文章目录Redis学习笔记-缓存容量&淘汰机制核心思想1.笔记图2.Redis作为缓存需要思考的问题3.缓存的特征4.Redis缓存请求处理的两种情况5.Redis缓存类型6.两种写回策略7.缓存设置多大容量8.LRU核心思想9.LFU核心思想10.Redis淘汰策略11.Redis中的LRU简化12.优化建议Redis学习笔记-缓存容量&淘汰机制核心思想通常服务器 内存 的价格成本要比相同空间大小的磁盘价格高出几倍,为了保证高的性价比,缓存的空间容量要比后端数据总量要小,80% 的请求

2021-01-16 18:16:46 217

原创 Redis学习笔记-缓冲区需要注意的问题

文章目录Redis学习笔记-缓冲区需要注意的问题1.笔记图2.和客户端相关的缓冲区2.1 输入缓冲区2.2 输出缓冲区3.主从集群缓冲区3.1 复制缓冲区3.2 复制缓冲区溢出3.3 复制积压缓冲区溢出Redis学习笔记-缓冲区需要注意的问题在 Redis 中缓冲区是用一块内存空间来暂时存放命令数据,以免出现因为数据和命令处理的速度慢于发送速度而导致的数据丢失和性能问题,而当缓冲区占用的内存超出了设定的上限时,就会出现缓冲区溢出,这篇文章学习一下 Redis 中分别有哪些地方用到了缓冲区,了解其原理之后

2021-01-14 13:53:33 399

原创 Redis学习笔记-内存碎片对性能的影响

文章目录Redis学习笔记-内存碎片对性能的影响1.笔记图2.内存碎片2.1 形成原因2.2 如何判断是否有内存碎片2.3 如何清理内存碎片2.4 小建议Redis学习笔记-内存碎片对性能的影响有时候在使用 Redis 的时候会遇到这样一个现象,已经删除了很多数据,但是 Redis 还是占用了很多内存,这是因为数据删除后,Redis 释放的内存空间会由内存分配器管理,并不会立即返回给操作系统,Redis 释放的内存空间可能并不是连续的,这些不连续的内存空间很有可能处于一种闲置状态,这篇文章学习一下内存碎

2021-01-14 13:50:05 643

原创 Redis学习笔记-避免Redis单线程阻塞

文章目录Redis学习笔记-避免Redis单线程阻塞1.笔记图2.影响 Redis 性能的因素3.和 Redis 实例的交互方式4.Redis 潜在阻塞点5.潜在阻塞点优化(执行异步操作)5.1 关键路径上的操作5.2 非关键路径上的操作6.异步子线程机制Redis学习笔记-避免Redis单线程阻塞我们都知道 Redis 中的增删改查操作使用的是单线程模型(对于读写操作,Redis 6.0也是单线程),既然 Redis 是单线程就需要注意其潜在阻塞点,这篇文章学习一下 Redis 有哪些可能造成单线程阻

2021-01-11 09:34:19 440

原创 Redis学习笔记-GEO经纬度编码原理&地理划分

文章目录Redis学习笔记-GEO经纬度编码原理&地理划分1.笔记图2.GEO 应用场景3.GEO 数据特点举例4.GeoHash 的编码方法(二分区间,区间编码)5.GEO 经纬度编码组合6.地理位置划分举例7.GEO 相关命令Redis学习笔记-GEO经纬度编码原理&地理划分在日常生活中,我们经常使用手机搜索附近的餐馆,或者在打车软件上打车,都需要获取用户和服务商之间位置信息,而 Redis 提供了一种可以查询地理位置信息的数据结构 GEO,其底层实现原理和 有序集合(Sorted

2021-01-09 20:24:34 1208 1

原创 链表翻转循环和递归写法

文章目录链表翻转循环和递归写法1.链表翻转循环实现原理图2.节点定义3.链表翻转循环实现代码4.链表翻转递归实现思想步骤和原理图5.递归代码链表翻转循环和递归写法1.链表翻转循环实现原理图2.节点定义class Node{ public $e;//节点元素 public $next; //下个节点信息 /** * 构造函数 设置节点信息 * Node constructor. * @param $e * @param $next

2021-01-09 20:20:45 137

原创 Redis学习笔记-统计该如何选择数据类型

文章目录Redis学习笔记-统计该如何选择数据类型1.笔记图2.聚合统计2.1 场景2.2 举例2.3 优化建议3.排序统计举例4.二值状态5.基数统计举例6.各个数据类型统计Redis学习笔记-统计该如何选择数据类型在业务场景中经常需要统计,如某直播累计观看人数、独立访客人数、历史总观看人数等等,再比如要统计某学生某月的签到情况等,遇到统计的情况,就需要思考如何合理地选择 Redis 数据类型,这篇文章学习一下各种统计的业务场景和分类,这样就能很容易的对应各种统计需求了。1.笔记图2.聚合统计

2021-01-06 10:14:20 186

原创 Redis学习笔记-String数据类型及其节省空间优化

文章目录Redis学习笔记-String数据类型及其节省空间优化1.笔记图2.Redis 基本数据类型和底层数据结构关系示意图3.String 类型保存方式4.压缩列表(ziplist)5.使用 Hash 类型替代 String 优化Redis学习笔记-String数据类型及其节省空间优化若要更好地优化 Redis 使用数据使用情况,就需要先了解 Redis 数据类型的存储方式,而前面文章学习过 String 类型底层数据结构是 简单动态字符串,当你使用 set 2201000060 440200008

2021-01-04 13:17:03 528

原创 Redis学习笔记-切片集群Redis Cluster

文章目录Redis学习笔记-切片集群Redis Cluster1.笔记图2.Redis 扩容方式3.切片集群需要思考4.哈希槽(Hash Slot)5.相关命令6.客户端定位数据7.Redis Cluster重定向机制Redis学习笔记-切片集群Redis Cluster之前学习了 Redis 哨兵机制和 Redis 哨兵集群建立过程,当主库发生故障时,Redis 哨兵可以将合适的从库切换成主库,这样就可以保证 Redis 的高可用了,但如果 Redis 数据量变大了就会面临扩容的问题,集群的实例增减,

2021-01-04 13:12:12 230

原创 Redis学习笔记-哨兵机制&哨兵集群建立过程

文章目录Redis学习笔记-哨兵机制&哨兵集群建立过程1.笔记图2.Redis 从库切换为主库需要思考的问题3.哨兵机制3.1 监控3.2 选主3.3 通知4.笔记图5.Redis哨兵集群建立过程5.1 功能说明5.2 Redis 如何配置哨兵6.Redis 哨兵集群组成原理7.Redis哨兵选LeaderRedis学习笔记-哨兵机制&哨兵集群建立过程前面介绍了 Redis 主从模型如何在不影响正常业务的情况下实现数据一致,若从库发生故障,客户端可以请求其他的从库(或主库)读取数据,若主

2021-01-02 15:20:46 182

原创 Redis学习笔记-主从库如何实现数据同步一致

文章目录Redis学习笔记-主从库如何实现数据同步一致1.笔记图2.读写分离3.第一次同步3.1 replicaof 命令3.2 三个阶段4.主-从-从模式5.主从库之间断网解决方案5.1 repl_back_buffer 记录失联后数据5.2 网络恢复后5.3 环形缓冲区(repl_backlog_buffer)大小设置Redis学习笔记-主从库如何实现数据同步一致通常说 Redis 具有高可靠性,主要是指 数据尽量少丢失 和 服务尽量少中断,其中 数据尽量少丢失 可以由 AOF 日志和 RDB 内存

2021-01-01 18:13:21 660

原创 Redis学习笔记-内存快照:宕机后,Redis如何实现快速恢复?

文章目录Redis学习笔记-内存快照:宕机后,Redis如何实现快速恢复?0.笔记图1.内存快照2.Redis 生成 RDB 的命令3.如何保证 RDB 快照生成时不影响写业务?4.全量快照和增量快照5.RDB 快照需要思考的问题6.RDB 和 AOF 混合使用Redis学习笔记-内存快照:宕机后,Redis如何实现快速恢复?前面文章学习过 AOF 持久化方案,AOF 日志是记录每一次执行的 Redis 命令写入操作,而 AOF 重写机制是将每一条数据现状用一条命令记录它的写入,这样可以将原来 AOF

2020-12-31 17:47:22 123

原创 Redis学习笔记-AOF日志&重写机制

文章目录Redis学习笔记-AOF日志&重写机制1.笔记图2.AOF 日志实现3.写日志先后顺序的思考4.AOF 日志记录的内容举例说明5.由 AOF 日志记录引发的潜在风险思考6.潜在风险对应的三种写回策略7.性能问题8.AOF 重写机制9.AOF 重写机制引发的阻塞思考Redis学习笔记-AOF日志&重写机制Redis 使用最多的场景是 缓存,若出现服务器宕机的情况,内存中的数据将全部丢失,若恢复数据的时候从后端数据库读取就会给数据库造成很大的压力,并且数据恢复缓慢,所以对于 Red

2020-12-30 21:09:55 1176

原创 C 结构体和联合体&gdb 调试

文章目录C 结构体和联合体&gdb 调试1.结构体2.联合体3.结构体联合体实战3.1 结构体实战3.2 gdb 调试结构体3.3 联合体3.4 gdb 调试联合体C 结构体和联合体&gdb 调试1.结构体struct _s{ char a; //1字节 int b; //4字节 long c; //8字节 void* d; //8字节 int e; //4字节 char *f; //8字节}s;Tips:并非 1+4+8+8+4+8=33 字节,可以

2020-12-29 21:07:10 283

原创 TCP 协议四次挥手&状态变迁

TCP 协议四次挥手&状态变迁之前介绍了 TCP 三次握手建立连接流程,而 TCP 协议是一个面向 字节流 的协议,它不限制应用层传输消息的长度,但是 网络层、数据链路层 在发送报文时使用的内存是有限的,所有就需要限制报文的长度,TCP 协议就需要把从 应用层 接收到的任意长度的 字节流 切分成许多个报文段,这里边涉及到很多底层复杂的网络编程的知识,如 TCP 是如何切分应用层的消息、慢启动、避免拥塞、超时重试等等,最后会经历一个关闭连接的过程,这篇简单介绍一下TCP 四次挥手 以及 状态变迁。

2020-12-29 17:11:31 449 1

原创 Redis学习笔记-高性能IO模型&Redis6.0多线程

文章目录Redis学习笔记-高性能IO模型&Redis6.0多线程1.笔记图2.Redis 单线程含义3.Redis单线程设计3.1 多线程需要解决的问题3.2 单线程 Redis 为什么那么快?4.多路复用机制4.1 IO 模型4.2 潜在阻塞点4.3 socket网络模型非阻塞模式4.4 基于多路复用的高性能 IO 模型 select/epoll5.Redis 6.0 多线程5.1 使用多线程原因5.2 对应网络 IO 瓶颈方法5.3 Redis6.0 多线程开启方式5.4 优化建议Redis

2020-12-28 16:35:59 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除