logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Mysql--实战篇--连接泄漏问题(什么是连接泄漏,未关闭SqlSession,长事务处理,连接池管理等)

连接泄漏是指应用程序未能正确关闭数据库连接,导致连接池中的可用连接逐渐减少,最终耗尽所有连接。连接泄漏可能会导致新的请求无法获得连接,进而引发服务中断。应用程序打开了数据库连接,但没有在使用完毕后正确关闭连接。异常处理不当,导致在发生异常时连接未被关闭。使用了长连接(如事务管理不当),导致连接长时间占用而无法释放。当发生连接泄漏后,连接池中的可用连接数会逐渐减少,最终可能导致所有连接都被占用,新的

文章图片
#mysql#数据库
Redis篇--常见问题篇5--热Key(Hot Key,什么是热Key,服务降级,一致性哈希)

热键问题是Redis在高并发场景下常见的性能瓶颈之一。由于Redis是单线程模型,热键的频繁访问会导致性能下降、延迟增加,甚至影响整个系统的稳定性。要解决热键问题,比较推荐的方式就是Redis集群和降级的方式。即上面优化建议的前3点当系统出现故障或遇到瓶颈时,为了保证系统可用,采用一些方法以牺牲一定的次要功能为代价,保证主业务还可以继续使用的手段,我们称之为降级。限流和熔断只是实现降级的一种策略,

文章图片
#redis#哈希算法
力扣经典算法篇-13-接雨水(较难,动态规划,加法转减法优化,双指针法)

解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。以左边为例,求当前柱子的最终高度,是不是就是左边存在的最大值,把这个最大值提取出来当做公共变量依次求出每一个柱子的最终值。反向来看,柱子的高度已知,我们可以求出当前总面积,在减去每一个柱子的面积,剩下的就是储水量的和。输入:height = [0,1,0

文章图片
#算法#leetcode#动态规划
Redis篇--常见问题篇3--缓存击穿(数据查询上锁,异步操作,熔断降级,三种缓存问题综合优化策略)

缓存击穿是指某个热点数据在缓存中过期后,大量并发请求同时访问该数据,导致这些请求全部穿透到数据库,形成瞬间的高负载,给数据库和服务带来巨大的压力,甚至会崩溃。这种情况通常发生在高并发场景下,尤其是在某些热点数据的缓存过期时。对于不存在的数据,缓存空结果(如null),并设置较短的过期时间。(推荐)使用布隆过滤器快速判断数据是否存在。(不太推荐,过滤器准确度以及需要维护成本)为每个缓存项设置随机的过

文章图片
#缓存#redis#数据库
Nacos-8--分析一下nacos中的AP和CP模式

AP模式:适合高可用性、容忍短暂不一致的场景,如微服务注册与发现。CP模式:适合强一致性、数据持久化的场景,如配置管理和金融系统。AP模式通过Distro协议实现最终一致性,CP模式通过Raft协议实现强一致性。通过合理选择模式,Nacos能够满足不同业务场景的需求,在一致性和可用性之间取得平衡。向阳前行,Dare To Be!!!

文章图片
#数据库#服务器#linux +1
Mysql--实战篇--连接池(连接池原理,HikariCP、C3P0、Druid和DBCP等)

连接池是Java应用程序中与数据库交互的重要组件,能够显著提升性能和资源利用率。通过合理配置连接池的参数,启用连接泄漏检测,使用合适的连接验证策略,并监控连接池的状态,可以确保连接池的高效运行和稳定性。在选择连接池实现时,建议根据你的应用场景和性能需求选择合适的连接池。HikariCP以其高性能和低延迟著称,适合大多数高并发场景;Druid提供了强大的监控和统计功能,适合对数据库性能有较高要求的场

文章图片
#mysql#数据库
Mysql--实战篇--SQL优化(查询优化器,常用的SQL优化方法,执行计划EXPLAIN,Mysql性能调优,慢日志开启和分析等)

SQL查询优化是一个多方面的过程,涉及到索引设计、查询语句编写、表结构调整、数据库配置等多个方面。通过合理使用索引、优化查询语句、调整表结构和数据库配置,可以显著提高查询性能,减少资源消耗,并最终提升系统的响应速度。1、创建合适的索引:使用覆盖索引、组合索引、前缀索引等,确保查询能够高效地使用索引。2、优化查询语句:避免使用SELECT ,使用EXISTS替代IN,使用JOIN替代子查询,避免隐式

文章图片
#mysql#sql
Redis篇--应用篇1--会话存储(session共享)

实现Session共享是构建分布式Web应用时的一个重要需求,尤其是在水平扩展和高可用性要求较高的场景下。在分布式服务或集群服务中往往会出现这样一个问题:用户登录A服务后可以正常访问A服务中的接口。但是我们知道,分布式服务通常都是有多个微服务一起构建形成的。如果后续请求转发到了B服务,B服务后端没有这个用户的Session信息,就会强制让用户重新登录,导致业务无法顺利完成。因此,就需要将Sessi

文章图片
#redis#数据库#缓存
Redis篇--常见问题篇1--缓存穿透(缓存空值,布隆过滤器,接口限流)

缓存穿透是指客户端请求的数据既不在Redis缓存中,也不在数据库中。换句话说,缓存和数据库中都不存在该数据,但客户端仍然发起了查询请求。这种情况下,缓存无法命中,请求会直接穿透到数据库,而数据库中也找不到相应的数据,最终返回null或者空结果。如果这种请求量非常大的话,不仅会浪费网络带宽、CPU和I/O等资源,还会额外增大数据库的压力,甚至会导致数据库崩溃。

文章图片
#缓存#redis#数据库
多线程篇-2--硬件基础介绍(CPU时间片,上下文切换,资源限制,CAS,连接池等理解)

1、每种时间片分配算法都有其适用的场景和优缺点。选择合适的调度算法需要根据系统的具体需求和特性来决定。例如,对于交互式系统,时间片轮转算法通常是一个好的选择;而对于实时系统,实时调度算法更为合适。多级反馈队列调度则适用于需要高度灵活性和适应性的复杂系统。2、操作系统通过监控系统负载、进程特性、用户需求等因素,动态选择和调整调度算法,以优化系统的性能和响应性。具体的方法包括负载感知调度、优先级调整和

文章图片
#java#算法
    共 141 条
  • 1
  • 2
  • 3
  • 15
  • 请选择