LYon's Blog

HTTPS 的密码学基础 R

12月 2, 2021
HTTP, Algorithms, Recommended, 计算机网络, 密码学, 浏览器, 面试题

本来打算直接总结下 HTTPS,但是发现要写的很多内容其实都依靠密码学的基础概念,其实我在阅读别的资料的时候发现基本也是这样,不然说的时候上下文都串不起来,甚至可以说研究 HTTPS 约等于在研究加密算法。所以还是专门分一篇来说一下加密,这样后面说 SSL/TLS 的时候就可以拉通底层概念了。 对称加密算法 # 对称加密算法(Symmetric-Key Algorithm)的详细内容可以直接参考我 … ...

InnoDB 的缓冲页管理

11月 11, 2021
MySQL, Database

Innodb 存储引擎将存储的数据都是以页的形式存放在表空间中,表空间是 InnoDB 对数据文件的抽象,说到底还是存储在磁盘上,我们都知道 CPU 的速度非常快,不会直接操作磁盘,于是 InnoDB 设计了一个缓存池(Buffer Pool)的机制,有数据库操作时,现将磁盘的文件导入内存进行操作,然后再通过一定机制回写到磁盘上。 缓存池是内存中的一段连续空间,其中一大部分被分为若干缓冲页,缓冲页 … ...

MySQL 的日志种类

11月 5, 2021
MySQL, Database

MySQL 数据库存在还多类型的日志,每一种日志都代表了一种数据库活动,了解这些日志可以侧面了解数据库的运行过程,在日常开发中也可以适当的运用。MySQL 中常见的日志文件有:错误日志、二进制日志、慢查询日志、一般查询日志、重做日志、回滚日志、中继日志,下面开始详细介绍一下。 错误日志(error log) # 错误日志对 MySQL 的启动、运行、关闭进行了记录。该文件不仅记录了所有的错误信息, … ...

数据库的索引 R

10月 29, 2021
MySQL, Database, Recommended, 面试题

索引在数据库中的地位非常重要,只有搞明白索引,才有可能在日常的数据库相关工作中解决实际问题:提高库表设计能力、优化查询效率、提升数据库性能等核心问题。数据库的索引有哪些?以 MySQL 的 InnoDB 存储引擎为例,一般可分为聚集索引、辅助索引、全文索引、哈希索引。但是只说这些可能还不够,因为你应该还听说过主键索引、联合索引、唯一索引,甚至自适应哈希索引等等,他们都称为索引,只是通常描述的维度不 … ...

数据库的事务 R

10月 22, 2021
MySQL, Database, Recommended, 面试题

请思考一个我在工作中遇到的一个场景:假设用户参加了一个优惠活动,买了一个30 天的会员卡,然后活动又送了一个 7 天的体验卡,最终我要交付给用户 37 天的会员权益时间。如果这两笔订单同时请求系统进行交付,那如何能够一直正确的交付 37天,并正确计算各订单的开始结束时间?(公司 MySQL 的隔离级别是 RC) 进阶问题:用户在下单之前已经是生效的会员了,又该如何解决? 此时我们必须要借助事务才能 … ...

数据库的锁 R

10月 16, 2021
MySQL, Database, Recommended, 面试题

数据库里的锁根据范围和维度都有不同的实现和叫法,如果我这样列出来你可能会很焦虑:GAP 锁,记录锁,显式锁定,表级锁,行级锁,页级锁,咨询锁,间隙锁,共享锁,排他锁,互斥锁,自旋锁,读写锁,悲观锁,乐观锁,因为当初我也是这种感觉,现在我重新整理一遍,希望对你也有帮助。 锁是一种并发控制手段,相对的还有其他的并发控制手段比如:MVCC(多版本并发控制),这个以后再说。 悲观锁(Pessimistic … ...

交替打印 1-100 之间的奇数和偶数

10月 2, 2021
Algorithms, Golang

题目:两个 goroutine 交替打印1-100之间的奇数和偶数。 方法一 # 利用非缓冲 channel 的阻塞。 package main import ( "fmt" "sync" ) func main() { ch := make(chan struct{}) var wg sync.WaitGroup wg.Add(2) go func() { … ...

推荐下双拼输入法

9月 30, 2021
Tools, Life

问题 # 最近打字聊天的工作比较多,发现我在拼类似【能不能】这种词语的时候经常打错成类似 negnbuneng 或者 nengnbuneng(见下图)这种有需要在两个字母之间来回切换的,还有就是 ang、eng、ong、iong 、uang这种拼音,非常不值得敲那么多遍。 那么我要解决的就是这种问题,减少每个字敲键盘的次数,同时也并不需要立刻全部采用双拼,只要像这种通过 ng 就能打印出【能】这 … ...

JS 加号运算符的运用

9月 18, 2021
JavaScript, Frontend

一元运算符 # 语法: + Expression 说明: + 号运算符作为一元运算符时,Expression将进行 ToNumber 操作。 argument类型 返回值 Undefined return NaN Null return +0 Boolean true return 1; false return 0; Number return value String 若字符串为纯数字时返回 … ...

JS 非空判断

9月 11, 2021
JavaScript, Frontend

在 js 中,有一个富有哲学意味的问题:「什么是空」?先看下面代码: function main(a) { if (!a) { console.log("空"); } else { console.log("非空"); } } main(0); main(null); main(); main("") main(undefined) … ...


© 2012 - 2025 YINDONGLIANG