(RedisOperations operations)
| 40 | List<Object> txResults = template.execute(new SessionCallback<List<Object>>() { |
| 41 | |
| 42 | @SuppressWarnings("unchecked") |
| 43 | @Override |
| 44 | public List<Object> execute(RedisOperations operations) throws DataAccessException { |
| 45 | operations.multi(); // 开始 redis 事务 |
| 46 | |
| 47 | operations.opsForHash().put(key, field, Objects.requireNonNull(JsonTool.toJson(val))); |
| 48 | |
| 49 | Duration expireTime = key.getExpireTime(); |
| 50 | long expireAt = key.getExpireAt(); |
| 51 | if (expireTime == null) { |
| 52 | operations.expireAt(key, Instant.ofEpochSecond(expireAt)); |
| 53 | } else { |
| 54 | operations.expire(key, expireTime); |
| 55 | } |
| 56 | |
| 57 | return operations.exec(); // 提交redis 事务 |
| 58 | } |
| 59 | }); |
| 60 | if (txResults != null && txResults.size() == 2) { |
| 61 | return txResults.get(0) == Boolean.TRUE && txResults.get(1) == Boolean.TRUE; |
no test coverage detected