-
图解 | 深入理解跳表及其在Redis中的应用
跳跃链表及其应用是非常热门的问题,深入了解其中奥秘大有裨益,不吹了,快开始品尝这美味的知识吧! 跳跃链表的基本概念 初识跳表 跳跃列表是一种数据结构。它允许快速查询一个有序连续元素的数据链表。跳跃列表...
-
Redisson 分布式锁源码之公平锁加锁
前言 默认的加锁逻辑是非公平的。 在加锁失败时,线程会进入 while 循环,一直尝试获得锁,这时候是多线程进行竞争。就是说谁抢到就是谁的。 Redisson 提供了公平锁机制,使用方式如下: RLo...
-
从0开始:500行代码实现 LSM 数据库
前言 LSM-Tree 是很多 NoSQL 数据库引擎的底层实现,例如 LevelDB,Hbase 等。本文基于《数据密集型应用系统设计》中对 LSM-Tree 数据库的设计思路,结合代码实现完整地阐...
-
7 个超实用的 MySQL 语句写法,让同事们眼前一亮!
在写SQL时,经常灵活运用一些SQL语句编写的技巧,可以大大简化程序逻辑。减少程序与数据库的交互次数,有利于数据库高可用性,同时也能显得你的SQL很牛B,让同事们眼前一亮。 1.插入或替换 如果我们想...
-
如何不改表结构动态扩展字段?
痛点 软件行业唯一不变的就是变化,比如功能上线之后,客户或 PM 需要对已有的功能增加一些合理的需求,完成这些工作必须通过添加字段解决,或者某些功能的实现需要通过增加字段来降低实现的复杂性等等。 这些...
-
MySQL系列之执行SQL 语句时发生了什么?
前言 当我们用 navicat、mysql workbench 等mysql 的客户端执行一条sql语句后,我们就能得到相应的结果。例如: 那么这个过程发生了什么呢? 执行一条sql 就是一次Rpc的...
-
MySQL 开源工具集合
上次聊到MySQL官方运维工具。这次再了解下常用的开源工具。 目前已收集的并在实际环境中使用过的开源工具如下: 可以说掌握了这些工具(原理和使用技巧),MySQL的日常运维就更简单。 备注:介绍中图片...
-
十多款Redis容器化技术选型对比,K8S并非万金油
张晋涛 云原生技术专家 负责DevOps的实践和落地,推进容器化技术落地和运维自动化等。参与了众多知名开源项目,对Docker、Kubernetes及相关生态有大量生产实践和深入源码的研究。 今天将分...
-
面试官:如果 MySQL 引起 CPU 消耗过大,你会怎么优化?
谁在消耗cpu? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 1、用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps 函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu,产生的...
-
MySQL单表亿级数据分页怎么优化?
前言 有人说单表超千万数据就应该分库分表了,这么玩不合理啊。但是对于创新业务来讲,业务系统的设计不可能一上来就预估这么大的容量,成本和工期都不足矣完成系统的开发工作。我觉得对于创新型业务系统的设计,首...
