@Autowired RedisTemplate<String,String> redisTemplate; redisTemplate.execute(new SessionCallback<Object>(){ @Override public <K, V> Object execute(RedisOperations<K, V> operations) throws DataAccessException { //开启事务 operations.multi(); for(int i = 1; i <= 5; i++) { redisTemplate.convertAndSend("channel:test", String.format("我是消息{%d}号: %tT", i, new Date())); redisTemplate.opsForValue().set("Key" + I, "Key" + I); } // execute transaction operations.exec (); return null ; } });