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(); } }