springboot架构,redis sentinel配置
通过SpringBoot mybatis redis项目的实例,了解了SpringBoot对redis的基本操作,昨天了解了redis入门(三) ——事务
趁着这个势头,让我们来学习如何在SpringBoot中使用Redis事务。
我查了网上的资料,主要有两种方法在SpringBoot上使用Redis事务
目录通过enableTransactionSupport (母测无效,原因不明)进行SessionCallback
enableTransactionSupport (母测无效,原因不明) ) ) ) )
使用redisTemplate将enableTransactionSupport设置为true,并指示事务开始-入队-事务执行
privatevoidsetdatabytransaction (listuserbeanuserbeans ) redis template.setenabletransactionsupport ) true; redisTemplate.multi (; user beans.foreach (item-{ redis template.opsforlist ).rightpush(redis_user ),item ); ); redisTemplate.exec (; }但是,如果在事务执行过程中出现异常,请参阅没有开启的事务
我为执行类添加了事务注释,但是很遗憾它无效
@ springbootapplication @ enabletransactionmanagement//事务注释publicclassdemoapplication { publicstaticvoidmain [ ] araraletic 幸运的是,这个方法不是推荐的方法。redisTemplate.exec(此方法不会关闭连接。
在SessionCallback上,所有操作都在同一个Session上进行。
privatevoidsetdatabysessioncallback { listuserbeanuserbeans } { sessioncallbacklistsessioncallback=newsessioncallllbact } V operations ) throwsdataaccessexception ) operations.multi ); user beans.foreach (item-{ redis template.opsforlist ).rightpush(redis_user ),item ); ); return redisTemplate.exec (; }; }