Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
(1)编程式实现(使用TransactionTemplate编程式实现事务)
通过TransactionTemplate的execute(TransactionCallback<T>action)方法实现事务
从容器中拿出TransactionTemplate的实例,通过TransactionTemplate的execute执行事务,通过try-catch
包裹需要保证原子性的业务方法,如果执行中遇到异常,使用setRollbackOnly()方法手动回滚事务。
(2)声明式实现(添加@Transactional注解声明式实现事务)
添加@Transactional在类上或方法上即可实现事务
添加@Transactional在方法上,在方法执行前会开启事务,当方法正常执行结束,会自动提交事务,
如果出现异常,则会自动回滚事务。