- 博客(11)
- 收藏
- 关注
原创 mysql索引失效原因分析
如果表的数据量非常小,MySQL 可能会认为使用索引的开销大于全表扫描,因此选择不使用索引。在查询中使用了范围条件(如 BETWEEN、>、=、
2025-01-07 19:23:31
564
原创 Apache ShardingSphere Proxy 教程
Apache ShardingSphere Proxy 是一个高性能的数据库中间件,属于Apache ShardingSphere生态系统的一部分。它主要提供数据分片、读写分离、数据库和数据表的透明访问,帮助提高大规模数据库系统的性能和可扩展性。Apache ShardingSphere Proxy 是一个功能强大的数据库中间件,通过提供数据分片、读写分离和透明访问等功能,有效提高了数据库系统的性能和扩展性。
2024-07-15 20:58:52
984
原创 分布式锁教程
分布式锁在分布式系统中至关重要,它确保了多个进程或服务对共享资源的同步访问。本文介绍了从JVM本地锁到分布式锁的实现及其优化方法,包括使用Redis的SETNX命令、添加过期时间、使用Lua脚本来保证操作的原子性和安全性。通过这些方法,可以有效解决锁的获取和释放问题,防止死锁和误释放,提升系统的可靠性和性能。下一篇文章会详细介绍 Redisson 分布式锁的加锁、解锁原理。Redisson。
2024-07-09 17:08:59
926
原创 缓存击穿之双重判定锁
缓存击穿是指在缓存中某个热点数据失效的瞬间,有大量并发请求同时访问该数据,这些请求绕过缓存直接查询数据库或其他持久化存储,从而导致数据库或持久化存储的瞬时压力骤增,可能会影响系统的稳定性和性能。这三种方法各有优缺点和适用场景。查询缓存不存在请求数据库的方法实现简单,适用于并发访问量较低或对实时性要求不高的场景。分布式互斥锁通过有效减少数据库的并发访问量,适用于高并发场景,特别是对数据库负载敏感的应用。
2024-06-05 19:14:13
1515
原创 布隆过滤器
布隆过滤器是一种高效的概率型数据结构,广泛应用于需要快速判断元素是否存在的场景。通过结合 Redisson 等库,可以方便地在 Java 中使用布隆过滤器来提升系统性能和可靠性。
2024-06-05 17:14:14
683
原创 责任链设计模式
责任链模式通过分散处理责任,为复杂业务流程提供了灵活、可扩展的解决方案。它允许请求在一系列对象中传递,直到被处理,极大地降低了处理者之间的耦合度。虽然可能会增加处理时间和复杂性,但其在管理多级请求处理、事件响应系统等方面的优势使其成为设计复杂系统时的一个有价值的工具。
2024-06-03 18:44:38
891
原创 Builder 设计模式
Builder 模式通过将对象的创建过程步骤化,解决了创建复杂对象时的各种问题,提高了代码的可读性和可维护性。在实际开发中,当遇到对象创建过程复杂或者需要多种表示方式的情况时,使用 Builder 模式是一个不错的选择。
2024-06-03 17:36:50
729
原创 订单延时关闭功能技术选型
在实现订单延时关闭功能时,我们讨论了四种不同的方法:定时任务、Redis、Redisson和RocketMQ。每种方法都有其优点和缺点,适用于不同的应用场景。
2024-05-30 11:41:25
1318
原创 如何生成分布式雪花算法ID
Snowflake,中文称为雪花算法,是Twitter开源的一种分布式ID生成算法。通过该算法生成的ID为64位的长整型数值,其结构中引入了时间戳,从而基本实现了自增。如果能保证标识位不重复,则生成的雪花ID也不会重复。通过前面的案例可以看出,ID重复的必要条件。如果要避免服务内产生重复的ID,需要从标识位上进行调整。我们来看一下开源框架中如何使用雪花算法定义标识位。:其雪花算法实现类Sequence提供了两种构造方法:无参构造方法会自动生成和workerId;有参构造方法则可以在创建Sequence。
2024-05-30 11:10:40
1425
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人