- 博客(5)
- 收藏
- 关注
原创 “HashMap 为什么快?99% 的人只知其一,不知其二!”
本文深入解析了HashMap的核心原理。HashMap通过数组+链表+红黑树(JDK8)实现键值对快速存取,其高效性源于无锁设计、优化的哈希计算和扩容机制。重点分析了二次哈希的作用(通过扰动函数使高位参与运算,减少冲突)和位与运算替代取模运算的性能优势。详细阐述了扩容机制:当元素超过负载因子阈值时,进行2倍扩容,通过(e.hash&oldCap)==0判断新位置(原下标或原下标+旧容量),拆分链表提升查询效率。文章还解释了JDK8引入红黑树(链表长度≥8时转换)的空间换时间权衡。
2025-12-03 15:09:05
862
原创 MySQL存储引擎-InnoDB、MyISAM、MEMORY
MySQL存储引擎是表级别的数据存储实现方式,主要包含InnoDB、MyISAM和MEMORY三种。InnoDB作为5.5版本后的默认引擎,支持事务、行级锁和外键,适合高并发写入场景;MyISAM仅支持表锁,读写速度快但不支持事务,适合读密集型应用;MEMORY将数据存储在内存中,速度快但易丢失,多用于临时表。三者主要区别在于事务支持、锁机制和外键约束,实际应用中InnoDB因其高可靠性和性能成为主流选择,而MyISAM和MEMORY逐渐被NoSQL和Redis等替代。选择引擎需根据事务需求、并发性能和数据
2025-08-08 11:42:36
1109
原创 MySQL事务演示以及解决并发事务问题
这里通过一个转账的案例来进行事务的演示首先我们创建一个表,创建对应的字段,我这里表名为account,字段分别是id(主键),name,account,具体的建表语句和示例数据如下然后,我们进行第一种方式的演示MySQL默认是开启自动提交模式的,这意味着每个单独的SQL语句都被视为一个独立的事务并自动提交。你可以通过查询系统变量来检查当前的自动提交状态,这里执行代码MySQL默认该值为1,也就是说我们写的每一条SQL语句执行完都会自动提交。这里我们可以修改其值为0。
2025-08-07 22:45:15
2188
原创 Redis哨兵(Sentinel)-剖析其作用与原理
在Redis中,如果一个从节点宕机,那么其可以去找主节点同步数据,那么当一个主节点宕机后,此时Redis只能进行从节点的读操作而无法进行写操作,如果此时主节点长时间不能恢复,那势必会造成严重的影响(长时间不能向Redis中进行写操作),为了解决这一问题,Redis哨兵应运而生。哨兵的作用体现在三个方面:1.监控:Sentinel会不断的监控Redis当中的主节点以及从节点,判断其是否按照预期进行工作2.自动故障恢复:当主节点故障时,Sentinel会在从节点中选取一个slave(从节点)并将其提拔成mast
2025-08-04 17:57:54
456
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
2