package com.yaozhitech.spring5.config; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.ReactiveRedisTemplate; import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; import org.springframework.data.redis.serializer.StringRedisSerializer; /** * redis 配置 * * @author yinzy */ @Configuration public class RedisConfig extends CachingConfigurerSupport { public static String cachePrefix = "bbc:"; @Bean public StringRedisSerializer stringRedisSerializer() { return new StringRedisSerializer(); } @Bean public GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer() { return new GenericJackson2JsonRedisSerializer(); } @Bean public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory){ StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(redisConnectionFactory); return template; } @Bean public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory, StringRedisSerializer stringRedisSerializer, GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer) { RedisTemplate redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); redisTemplate.setKeySerializer(stringRedisSerializer); redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer); redisTemplate.setHashKeySerializer(stringRedisSerializer); redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer); return redisTemplate; } @Bean public ReactiveRedisTemplate reactiveRedisTemplate(ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) { ReactiveRedisTemplate redisTemplate = new ReactiveRedisTemplate(reactiveRedisConnectionFactory, RedisSerializationContext.fromSerializer(genericJackson2JsonRedisSerializer())); return redisTemplate; } @Bean public ReactiveStringRedisTemplate ReactiveStringRedisTemplate(ReactiveRedisConnectionFactory reactiveRedisConnectionFactory){ ReactiveStringRedisTemplate template = new ReactiveStringRedisTemplate(reactiveRedisConnectionFactory); return template; } }