Files
JChargePointProtocol/jcpp-infrastructure-cache/src/main/java/sanbing/jcpp/infrastructure/cache/RedisCacheTransaction.java

48 lines
1.2 KiB
Java
Raw Normal View History

2024-10-08 09:38:54 +08:00
/**
2025-03-04 10:42:17 +08:00
* 开源代码仅供学习和交流研究使用商用请联系三丙
* 微信mohan_88888
* 抖音程序员三丙
* 付费课程知识星球https://t.zsxq.com/aKtXo
2024-10-08 09:38:54 +08:00
*/
package sanbing.jcpp.infrastructure.cache;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.connection.RedisConnection;
import java.io.Serializable;
import java.util.Objects;
@Slf4j
@RequiredArgsConstructor
public class RedisCacheTransaction<K extends Serializable, V extends Serializable> implements CacheTransaction<K, V> {
private final RedisTransactionalCache<K, V> cache;
private final RedisConnection connection;
@Override
public void put(K key, V value) {
cache.put(key, value, connection);
}
@Override
public boolean commit() {
try {
var execResult = connection.exec();
return execResult.stream().anyMatch(Objects::nonNull);
} finally {
connection.close();
}
}
@Override
public void rollback() {
try {
connection.discard();
} finally {
connection.close();
}
}
}