- 博客(14)
- 收藏
- 关注
原创 【Redis实战篇】基于Redis的功能实现附近商铺查询(Geo),用户签到与统计(Bitmap),网站UV统计(HyperLogLog)
【Redis实战篇】基于Redis的功能实现附近商铺查询(Geo),用户签到与统计(Bitmap),网站UV统计(HyperLogLog)
2025-05-22 00:58:54
402
原创 Java 8 Stream 流操作全解析
通过掌握 Stream 流的常见用法,可以显著提升代码的可读性和开发效率,尤其在处理集合数据时,能够以更简洁的方式实现复杂的数据操作。
2025-05-21 19:16:53
1316
原创 【Redis实战篇】Redis三种方法实现消息队列优化秒杀优惠券
Redis Stream 是 Redis 5.0 版本引入的新数据结构,主要用于实现消息队列(MQ,Message Queue)。Redis 原本的发布订阅(pub/sub)虽能实现消息队列功能,但存在消息无法持久化的问题,一旦出现网络断开、Redis 宕机等情况,消息就会被丢弃。而 Redis Stream 提供了消息的持久化和主备复制功能,可让任何客户端访问任何时刻的数据,能记住每个客户端的访问位置,还能保证消息不丢失。
2025-05-19 20:37:12
1093
原创 【Redis实战篇】集群架构下的超卖问题
数据同步问题是一个复杂而重要的课题。在单 JVM 环境下表现出色,但在集群架构下中会出现线程安全问题。通过引入分布式锁机制,如 Redis 实现的分布式锁,可以有效解决跨节点同步问题,确保系统的一致性和可靠性。在实际应用中,需要根据具体场景选择合适的分布式锁实现方式,并注意锁的过期时间、原子性操作等关键问题。
2025-05-18 01:43:22
881
原创 集群与分布式架构解析:从概念、差异到应用场景的全维度对比
将多个同构化服务器节点组成统一服务池,所有节点运行完全相同的应用程序副本,通过负载均衡机制对外呈现单一服务入口。
2025-05-16 17:42:49
758
原创 实战篇万字总结 | 秒杀优惠卷(全局ID生成器,秒杀超卖问题,乐观锁与悲观锁)
在这个测试方法中,充当了协调主线程和子线程的角色,保证主线程在所有子线程任务执行完成后才继续执行,从而能够精确统计多线程并发执行方法的总耗时。
2025-05-16 03:17:39
1108
原创 Redis实战篇|将解决缓存问题方案封装成工具类
步骤 1:定义缓存策略枚举枚举中每个常量对应一种策略,并通过抽象方法统一执行逻辑。@Override// 参数校验throw new IllegalArgumentException("PASS_THROUGH 策略需设置 time 和 unit");},@Overridethrow new IllegalArgumentException("LOGICAL_EXPIRE 策略需设置 expireTime");
2025-05-15 02:28:27
753
原创 Redis缓存的应用与相关问题(缓存更新策略,缓存穿透,缓存雪崩,缓存穿透)
return Result.fail("店铺不存在");if (json!= null) {return Result.fail("店铺不存在");问题核心区别典型场景核心解决方案缓存穿透数据不存在,恶意攻击查询id=-1的数据布隆过滤器、缓存空值、接口校验缓存击穿单热点数据过期,高并发请求秒杀商品缓存失效互斥锁、逻辑过期、双缓存缓存雪崩大量数据同时失效或服务宕机促销活动后缓存集体过期分散过期时间、多级缓存、集群容灾。
2025-05-14 02:00:01
1254
原创 用HttpSession完成登陆与校验与其产生的问题和解决方案
以上几种方案各有优缺点,实际开发中可根据项目需求、性能要求、安全要求等因素选择合适的解决方案。
2025-05-13 00:46:33
833
原创 Redis 序列化问题分析与解决方案
为避免上述问题,我们需要配置序列化器,而配置序列化器主要有两种方法1. 默认 JDK 序列化的问题问题表现使用未配置的会默认采用,导致存储数据为二进制流(如可读性差:二进制数据无法直观阅读。体积膨胀:包含类元数据,内存占用高。兼容性差:类结构变更或跨 Java 版本易失败。跨语言限制:仅适用于 Java 生态。2. 解决方案:自定义序列化配置通过配置的序列化器,优化存储格式。方案一:GenericJackson2JsonRedisSerializer机制序列化时添加@class字段记录类型信息(如。
2025-05-11 19:33:50
1330
原创 客户端操作redis为什么要使用连接池
在使用Jedis操作Redis数据库时,频繁创建和销毁连接会导致系统性能下降,尤其是在高并发场景下,可能耗尽系统资源。为了解决这一问题,可以通过配置连接池来管理Redis连接。连接池在初始化时创建一定数量的连接,并在需要时分配和回收连接,从而减少连接创建和销毁的开销,提高系统性能和吞吐量。此外,连接池还可以控制连接数量,防止资源耗尽,并提供统一的连接管理和监控接口,便于维护和优化。通过使用连接池,可以显著提升系统的响应速度和稳定性。
2025-05-11 03:40:18
230
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人