Jul202021
MyBatis二级缓存使用详解及避免踩坑指南
MyBatis是一个非常受欢迎的持久层框架,它提供了丰富的特性来简化数据库操作。其中一个重要特性就是二级缓存,它可以大大提升查询性能。然而,二级缓存并不是万能的,如果不使用得当,可能会导致一些问题。本文将详细介绍MyBatis二级缓存的使用方法,并提供一些避免常见问题的指南。
什么是MyBatis二级缓存?
MyBatis的一级缓存是在同一个会话中共享的,而二级缓存是在不同会话之间共享的...阅读全文
抢沙发
Jun202021
PHP实现Redis分布式锁
锁在我们的日常开发可谓用得比较多。通常用来解决资源并发的问题。特别是多机集群情况下,资源争抢的问题。但是,很多新手在锁的处理上常常会犯一些问题。今天我们来深入理解锁。
一、Redis 锁错误使用之一
我曾经见过有的项目把查询结果存储到 Redis 当中时的伪代码如下:
$redis = new \Redis('127.0.0.1', 6379);
$cacheKey = 'query_cache';
$result = $redis->get($cacheKey);
...阅读全文
Jun062021
PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别
这篇文章主要介绍了PHP中eAccelerator、memcached、xcache、APC等4个加速、缓存扩展的区别和选用建议,需要的朋友可以参考下
折腾VPS的朋友,在安装好LNMP等Web运行环境后都会选择一些缓存扩展安装以提高PHP运行速度,常被人介绍的有 eAccelerator、memcached、xcache、Alternative PHP Cache这几个缓存扩展,它们之间有什么区别?分别的作用又是什么?我们如何选择?这是本文给于大家的...阅读全文
May192021
Spring Boot 3.2项目中使用缓存Cache的正确姿势
在开发大型项目时,使用缓存是提高应用程序性能的常用方法之一。Spring Boot 3.2提供了强大的缓存支持,使我们可以轻松地将缓存集成到我们的应用程序中。在本博客中,我将介绍如何正确地使用缓存Cache,以及在Spring Boot 3.2项目中使用缓存的最佳实践。
什么是缓存?
在简单的说法中,缓存是在计算机系统中存储数据的临时存储区域。当我们需要访问数据时,我们可以首先检查缓存,如果数...阅读全文
May122021
Redis缓存穿透、击穿、雪崩解决方案:分布式缓存高可用架构设计与实现
Redis缓存穿透、击穿、雪崩解决方案:分布式缓存高可用架构设计与实现
引言
在现代分布式系统中,Redis作为主流的缓存解决方案,承担着提升系统性能、减轻数据库压力的重要职责。然而,在实际应用过程中,缓存相关的三大经典问题——缓存穿透、缓存击穿、缓存雪崩——往往会严重影响系统的稳定性和用户体验。本文将深入分析这些问题的本质,并提供切实可行的解决方案,帮助构建高可用的分布式...阅读全文
Mar072021
解决Webpack中的Module not found: Error: Can’t resolve错误
在使用Webpack进行项目开发中,我们经常会遇到”Module not found: Error: Can’t resolve”的错误。这个错误通常意味着Webpack无法解析或找到对应的模块。这个问题的出现可能是由于文件路径错误、模块名称拼写错误、模块丢失或未安装等原因造成的。在本篇博客中,我们将讨论一些常见的解决方法。
1. 检查文件路径
最常见的原因之一是文件路径错误。请确保你在Webpack配置...阅读全文
Jan252021
Jan162021
MyBatis缓存机制详解:从一级缓存到二级缓存的优化策略
一级缓存
MyBatis的一级缓存是内置在SqlSession中的一个默认缓存,它是SqlSession级别的缓存,也称为本地缓存。一级缓存可以通过开启或关闭来控制。
工作原理
当SqlSession执行查询操作时,查询结果会被缓存到一级缓存中。当再次执行相同的查询操作时,MyBatis会首先检查一级缓存中是否存在相同的查询结果,如果存在,则直接从缓存中获取数据,而不会再次查询数据库。
缓存失效
在一级缓...阅读全文
Nov262020
Oct122020