81 lines
3.2 KiB
Java
81 lines
3.2 KiB
Java
package com.sqx.config;
|
||
|
||
import com.sqx.common.utils.RedisUtils;
|
||
import org.springframework.beans.factory.annotation.Autowired;
|
||
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.core.*;
|
||
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
|
||
import org.springframework.data.redis.serializer.RedisSerializationContext;
|
||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||
|
||
import java.time.Duration;
|
||
|
||
/**
|
||
* Redis配置
|
||
*
|
||
*/
|
||
@Configuration
|
||
public class RedisConfig {
|
||
@Autowired
|
||
private RedisConnectionFactory factory;
|
||
|
||
@Bean
|
||
public CacheManager cacheManager(RedisConnectionFactory redisConnectionFactory) {
|
||
RedisCacheConfiguration cacheConfiguration = RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(30))
|
||
// 设置缓存过期时间为30分钟
|
||
.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer()))
|
||
.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()))
|
||
.disableCachingNullValues();
|
||
|
||
return RedisCacheManager.builder(redisConnectionFactory)
|
||
.cacheDefaults(cacheConfiguration)
|
||
.build();
|
||
}
|
||
@Bean
|
||
public RedisTemplate<String, Object> redisTemplate() {
|
||
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
||
redisTemplate.setHashValueSerializer(new StringRedisSerializer());
|
||
redisTemplate.setValueSerializer(new StringRedisSerializer());
|
||
redisTemplate.setConnectionFactory(factory);
|
||
return redisTemplate;
|
||
}
|
||
|
||
@Bean
|
||
public HashOperations<String, String, Object> hashOperations(RedisTemplate<String, Object> redisTemplate) {
|
||
return redisTemplate.opsForHash();
|
||
}
|
||
|
||
@Bean
|
||
public ValueOperations<String, String> valueOperations(RedisTemplate<String, String> redisTemplate) {
|
||
return redisTemplate.opsForValue();
|
||
}
|
||
|
||
@Bean
|
||
public ListOperations<String, Object> listOperations(RedisTemplate<String, Object> redisTemplate) {
|
||
return redisTemplate.opsForList();
|
||
}
|
||
|
||
@Bean
|
||
public SetOperations<String, Object> setOperations(RedisTemplate<String, Object> redisTemplate) {
|
||
return redisTemplate.opsForSet();
|
||
}
|
||
|
||
@Bean
|
||
public ZSetOperations<String, Object> zSetOperations(RedisTemplate<String, Object> redisTemplate) {
|
||
return redisTemplate.opsForZSet();
|
||
}
|
||
|
||
@Bean
|
||
public RedisUtils redisUtils() {
|
||
// 根据实际情况初始化RedisUtils实例,可能需要传入相关配置参数,如Redis连接信息等
|
||
return new RedisUtils();
|
||
}
|
||
}
|