Spring-Boot-Data-Redis
RedisTemplate
RedisTemplate是Spring Data Redis提供的一个用于操作Redis的模板类。
它封装了对Redis的常见操作,如存储、读取、删除等,简化了与Redis交互的过程。
对接RedisTemplate命令参考如下。
import com.huawei.devspore.mas.redis.core.MultiZoneClient;
import com.huawei.devspore.mas.redis.spring.boot.cache.DcsConnectionFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
@Configuration
public class TemplateConfig {
@Bean
public DcsConnectionFactory dcsConnectionFactory(MultiZoneClient client) {
return new DcsConnectionFactory(client);
}
@Bean
@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
public RedisTemplate<Object, Object> RedisTemplate(RedisConnectionFactory RedisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(RedisConnectionFactory);
return template;
}
@Bean
@ConditionalOnSingleCandidate(RedisConnectionFactory.class)
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory RedisConnectionFactory) {
return new StringRedisTemplate(RedisConnectionFactory);
}
}
RedisCacheManager
RedisCacheManager是一个用于管理Redis缓存的工具类。
对接RedisCacheManager命令参考如下。
import com.huawei.devspore.mas.redis.core.MultiZoneClient;
import com.huawei.devspore.mas.redis.spring.boot.cache.DcsConnectionFactory;
import org.springframework.cache.CacheManager;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.time.Duration;
@Configuration
public class TemplateConfig {
@Bean
public DcsConnectionFactory dcsConnectionFactory(MultiZoneClient client) {
return new DcsConnectionFactory(client);
}
@Bean
public CacheManager cacheManager(RedisConnectionFactory dcsConnectionFactory) {
RedisSerializer<String> RedisSerializer = new StringRedisSerializer();
GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();
// 配置序列化
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
.entryTtl(Duration.ofSeconds(5)) //设置缓存失效时间
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer))
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(genericJackson2JsonRedisSerializer))
.disableCachingNullValues();
return RedisCacheManager.builder(dcsConnectionFactory)
.cacheDefaults(config)
.build();
}
}