首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

当@Transactional遇到@CacheEvict,会不会先缓存呢?

点击蓝字关注不迷路 有bug吗 如上图所示,当@Transactional 遇到@CacheEvict,是先缓存后更新数据库,还是先更新数据库后更新缓存呢?...大家都知道,也缓存后更新数据库,会不定时出现脏数据的哦 思考 首先,@Transactional是给当前方法添加事务支持的。...Debug 寻找真相 首先,执行清除缓存的是org.springframework.cache.Cache#evict方法,此处又是使用 redis 作为缓存的提供者,所以在清除缓存时,必然会调用...,对应的缓存数据已被清除。...先清除缓存,然后在事务还没有提交之前,服务器就收到了新的用户请求,然后,发现缓存中没有数据,则去数据库中获取数据(事务还没有提交则获取到旧值),同时将获取的数据添加到缓存中。

1K20

Linux安装Tomcat

1.卸载 到tomcat的安装目录 rm -rf /usr/java/tomcat/apache-tomcat-8.5.31 2.安装 从官网上下载linux版本的tomcat(apache-tomcat...-8.5.31.tar.gz) 通过ftp或者rz命令上传到linux 我的tomcat装到/usr/local目录下,在/usr/local目录下新建tomcat文件夹 mkdir /usr/local.../tomcat tar -zxvf apache-tomcat-8.5.31.tar.gz -C /usr/local/tomcat 进入tomcat的bin目录下,vi命令打开setclasspath.sh...三、重启Linux服务器 reboot 四、进入到Tomcat下的logs目录,动态查看日志文件,退出查看日志使用 :Ctrl+Z tail -f catalina.out...管理 tomcat8.5管理员默认只能在安装tomcat的机器上访问,如果想在其他机器上访问,则需要进行配置修改 添加用户和权限(\conf\tomcat-users.xml): <role rolename

6.8K20

缓存的姿势不对,真的会出生产bug哦

最近解决了一个生产bug,bug的原因很简单,就是清理缓存的方式不对。本来没啥好说的,但是考虑到我们有时候确实会在一些小问题上栽跟头,最终决定把这个小故事拿出来跟大家分享下。...没办法只能看那个时间段所有的log,发现有一行“map缓存中有数据,可能多人同时操作”。...查下代码,发现代码中为了防止同一条数据多人同时操作,加了map作为缓存,数据记录的PK作为key和value。...总结 其实这个缓存清理的问题本身很简单,大家都懂,就和释放数据库连接等情况一样,需要放到finally块里面, 这个即使代码抛异常了也能正常释放或清理。...否则,万一出现类似的问题真的有点尴尬,正如题目所说“缓存的姿势不对,真的会出生产bug哦”。 希望你我今后都能避免这种情况的发生。

38510

tomcat 缓存导致的严重问题

今天在部署jsp代码的时候,打成war包丢到线上服务器的tomcat容器里面。结果死活不出结果。 咨询了下同事,说是tomcat缓存的问题。...清理缓存方法如下: step1 停掉tomcat,进入tomcat的主目录。 step2 删掉work目录下全部文件(work目录不要删!)。 step3 删掉temp目录下的所有文件。...step4 再次启动tomcat即可 下面是摘自其他人博客的: tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目...而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。         ...有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

3.7K31
领券