Fork me on GitHub
摘要: 一、Redis 事务的实现原理 一个事务从开始到结束通常会经历以下三个阶段: 1、事务开始 客户端发送 MULTI 命令,服务器执行 MULTI 命令逻辑。 服务器会在客户端状态(redisClient)的 属性打开 REDIS_MULTI 标识,将客户端从非事务状态切换到事务状态。 2、命令入队 阅读全文
posted @ 2020-04-25 18:31 不送花的程序猿 阅读(1846) 评论(2) 推荐(0) 编辑
摘要: "github地址:h2cache spring boot starter" 一、缓存 当系统的并发量上来了,如果我们频繁地去访问数据库,那么会使数据库的压力不断增大,在高峰时甚至可以出现数据库崩溃的现象。所以一般我们会使用缓存来解决这个数据库并发访问问题,用户访问进来,会先从缓存里查询,如果存在则 阅读全文
posted @ 2020-04-07 09:47 不送花的程序猿 阅读(4245) 评论(5) 推荐(2) 编辑
摘要: 前言:开源项目 我相信,拥有自己的开源项目是每个程序员心中最想达成的事,不管是小项目还是大项目。当然了,大项目不是每个程序员都要能力完成的;但是小项目,例如自己编写的 Spring Boot Starter,或者自己编写的工具类,这些还是挺有意思,挺有意义的。 那么当我们编写完项目了,接下来当然是要 阅读全文
posted @ 2020-04-06 11:48 不送花的程序猿 阅读(729) 评论(0) 推荐(0) 编辑
摘要: 一、背景 今天,交流群有一位同学提出了一个问题。看下图: 之后,这位同学确实也发了一个全模糊查询走索引的例子: 到这我们可以发现,这两个sql最大的区别是:一个是查询全字段(select ),而一个只查询主键(select id)。 此时,又有其他同学讲了其他方案: 全文索引这个不用说,那是能让全模 阅读全文
posted @ 2020-03-09 17:40 不送花的程序猿 阅读(2229) 评论(1) 推荐(0) 编辑
摘要: 如果大家对我的 "【大白话系列】MySQL 学习总结系列" 感兴趣的话,可以点击关注一波。 一、回顾 MySQL 学习总结系列至此已经第七节了。 从大方向:我们已经学习了 MySQL 的架构设计、InnoDB 的架构设计。 从较为深入的:我们已经学习了 rodo log 和 binlog 配合的两阶 阅读全文
posted @ 2020-02-27 09:16 不送花的程序猿 阅读(1794) 评论(1) 推荐(0) 编辑
摘要: 如果大家对我的 "【大白话系列】MySQL 学习总结系列" 感兴趣的话,可以点击关注一波。 一、上节回顾 在上节 "《 缓冲池(Buffer Pool) 的设计原理和管理机制》" 中,介绍了缓冲池整体的设计原理。包括几个比较重要的概念:free 链表、flush 链表和 lru 链表。正式因为这一套 阅读全文
posted @ 2020-02-23 09:57 不送花的程序猿 阅读(2046) 评论(2) 推荐(1) 编辑
摘要: 一、生产出错! 今天早上11点左右,我在工作休息之余,撸了一下猫。突然,工作群响了,老大在里面说:APP出错了! 妈啊,这太吓人了,因为只是说了出错,但是没说错误的信息。所以我赶紧到APP上看看。 这果然是出错了,而且还是简单而粗暴的500,太吓人了。 二、本地赶紧调试起来! 既然线上出错了,我们又 阅读全文
posted @ 2020-02-21 15:36 不送花的程序猿 阅读(1130) 评论(2) 推荐(1) 编辑
摘要: 一、缓冲池(Buffer Pool)的地位 在《 "MySQL 学习总结 之 InnoDB 存储引擎的架构设计" 》中,我们就讲到,缓冲池是 InnoDB 存储引擎中最重要的组件。因为为了提高 MySQL 的并发性能,使用到的数据都会缓存在缓冲池中,然后所有的增删改查操作都将在缓冲池中执行。 通过这 阅读全文
posted @ 2020-02-18 18:56 不送花的程序猿 阅读(2152) 评论(1) 推荐(3) 编辑
摘要: 一、背景 昨天早上,交流群有一位同学提出了一个问题。看下图: 我不是大佬,而且当时我自己的想法也只是猜测,所以并没有回复那位同学,只是接下来自己做了一个测试验证一下。 他只简单了说了一句话,就是同样的sql,一个没加 order by 就全表扫描,一个加了 order by 就走索引了。 我们可以仔 阅读全文
posted @ 2020-02-15 11:42 不送花的程序猿 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 一、上节回顾 上节我们讲到,建议将 的刷盘策略设置为1:即提交事务时,强制将 里的 刷入到磁盘后才算事务提交成功。 但是我们都知道, 是 InnoDB 存储引擎的组件,而 MySQL 支持很多种存储引擎,那么 MySQL 在撇除存储引擎后,自己就没有记录一下关于数据更新的日志吗? 二、binlog 阅读全文
posted @ 2020-02-13 16:25 不送花的程序猿 阅读(382) 评论(0) 推荐(1) 编辑