- 博客(9)
- 收藏
- 关注
原创 为 GitHub 开源项目贡献代码
最近在学习开源项目的过程中,发现项目代码存在一些 bug,便尝试贡献自己的代码解决这些问题。由于平时使用 Git 通常仅限于git add .git push等基本操作,在多次提交 Pull Request (PR) 的过程中遇到了不少困难。本文将系统地整理 GitHub 上为开源项目贡献代码的完整流程和常见问题的解决方案。没有 VIP 的读者可以去看原文为 GitHub 开源项目贡献代码。
2025-04-07 01:05:27
860
原创 Redis String 实现分布式锁
在分布式系统中,并发控制就像是多个人同时进出一个房间,如何确保秩序?想象一下这个场景:双十一抢购活动中,某个热门商品只剩最后 10 件,此时有几万人同时点击"下单"。如果没有适当的并发控制,很可能导致最终售出 100 件(严重超卖),但实际仓库只有 10 件商品,这将带来糟糕的用户体验和业务混乱。在单机应用中,我们可以使用 Java 的关键字或轻松解决这类问题。但在分布式环境下,这些本地锁无法跨服务器工作,此时我们需要一种能在多个服务实例间协调的锁机制——分布式锁。
2025-04-03 11:23:18
785
原创 Redis Hash 实现计数统计
在互联网应用中,计数统计功能看似平凡,实则无处不在。这些数字不仅提供了重要的数据指标,还能增强用户参与感和互动性。我最近在开发过程中思考:如何设计一个既高效又可靠的计数统计系统?经过查询大量资料和实践,我发现 Redis 的 Hash 数据结构是一个极其优秀的解决方案。今天,就让我们一起探索如何利用 Redis Hash 来构建强大的计数统计功能。Redis HSet 提供了一种高效、灵活的计数统计解决方案。通过合理的键设计、字段规划和业务解耦,我们可以构建出既高性能又可靠的计数统计系统。
2025-03-31 21:00:42
965
原创 Redis Set 实现白名单
高性能:Redis 的内存操作保证了毫秒级的响应时间灵活性:可以随时添加、删除白名单成员,无需改动代码功能丰富:支持集合运算,可以实现复杂的白名单逻辑实现简单:几十行代码就能搞定核心功能在实际项目中,我们选择了 Redis 实现方案,因为它在简单性和高性能间取得了完美平衡。你的项目中是否也有类似的白名单需求呢?不妨试试 Redis Set 实现,你会发现它简单得令人惊喜!
2025-03-29 21:19:15
708
原创 通俗易懂:VO、BO、PO、DO、DTO 的区别
PO:数据库表的映射,与数据库结构一一对应DO:包含业务逻辑的领域对象,是业务的核心BO:封装多个 DO 的业务对象,处理复杂的业务逻辑DTO:用于不同层之间传输数据,可以隐藏内部实现细节VO:用于页面展示,根据展示需求封装数据数据访问层关注 PO业务逻辑层关注 DO 和 BO接口层关注 DTO展示层关注 VO提高代码的可维护性降低系统各层之间的耦合更好地适应需求变化提高代码的复用性高内聚,低耦合。每一层都只关注自己需要的数据,通过对象转换来实现层与层之间的解耦。
2025-03-27 21:49:21
1103
原创 RabbitMQ 连接池集成到 SpringBoot
在高并发应用场景中,消息队列作为核心组件之一发挥着至关重要的作用。RabbitMQ 作为一款成熟的消息中间件,常被用于系统间异步通信、流量削峰填谷等场景。然而,创建和销毁 RabbitMQ 连接是一项资源消耗较大的操作,频繁地建立连接会导致系统性能下降、网络资源浪费,甚至可能引发连接泄漏等问题。本文将介绍如何在 Spring Boot 应用中实现一个简单高效的 RabbitMQ 连接池,通过连接复用机制显著提升应用对 RabbitMQ 的访问性能和稳定性。
2025-03-26 12:06:58
790
原创 消息队列 RabbitMQ 的特征和原理
在现代分布式系统架构中,各个服务之间的通信方式至关重要。随着业务复杂度的增加,系统间的耦合度也随之提高,这给系统的可维护性和可扩展性带来了巨大挑战。消息队列作为一种异步通信方式,很好地解决了这些问题,它允许不同服务间松耦合地交换信息,提高了系统的可扩展性、容错性和峰值处理能力。本文将深入探讨 RabbitMQ 这一广受欢迎的开源消息队列系统,从其基本概念、核心工作原理到实际应用场景,帮助读者全面了解这一强大的中间件工具。
2025-03-25 13:31:45
911
原创 Redis ZSet 实现用户活跃排行榜
在互联网应用中,用户活跃度排行榜是增强用户互动和促进社区活跃的重要功能。传统的基于关系型数据库的实现方案面临着性能瓶颈,特别是在高并发场景下。本文将详细介绍如何利用Redis的特性来实现一个高效、实时的用户活跃排行榜系统。在某些特定场景下,例如用户活跃度统计这类对实时性要求高但允许少量数据丢失的功能,我们可以直接使用 Redis 作为主要存储,而非作为 MySQL 的缓存层。
2025-03-24 10:44:16
922
原创 如何保障 MySQL 数据库和 Redis 缓存数据一致性
在高并发业务场景中,数据库通常是系统架构中最容易成为性能瓶颈的环节。为了解决这一问题,我们常常引入 Redis 作为缓存层,在访问链路中充当缓冲区角色,让用户请求优先访问 Redis 而非直接查询 MySQL 等关系型数据库,从而显著降低数据库的访问压力。本文将聚焦于 MySQL 数据库与 Redis 缓存操作的先后顺序问题,而非深入探讨各种缓存策略(如旁路缓存、读写穿透策略或写回策略等)的实现细节。通过分析不同的操作顺序,我们将探讨如何有效地保障缓存与数据库之间的数据一致性。
2025-03-23 21:04:30
1076
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人