84 lines
2.6 KiB
Java
84 lines
2.6 KiB
Java
/**
|
|
* Copyright (c) 2020 fumeiai All rights reserved.
|
|
*
|
|
*
|
|
*
|
|
* 版权所有,侵权必究!
|
|
*/
|
|
|
|
package com.lz.config;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.cache.interceptor.KeyGenerator;
|
|
import org.springframework.cache.interceptor.SimpleKeyGenerator;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
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.StringRedisSerializer;
|
|
|
|
/**
|
|
* Redis配置
|
|
*
|
|
* @author Mark sunlightcs@gmail.com
|
|
*/
|
|
@Configuration
|
|
public class RedisConfig {
|
|
@Value("${redis.cache.expiration:3600}")
|
|
private Long expiration;
|
|
|
|
@Bean
|
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
|
|
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
|
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
|
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
|
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
|
|
redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
|
|
redisTemplate.setConnectionFactory(redisConnectionFactory);
|
|
redisTemplate.afterPropertiesSet();
|
|
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();
|
|
}
|
|
|
|
|
|
/**
|
|
* 显示声明缓存key生成器
|
|
*
|
|
* @return
|
|
*/
|
|
@Bean
|
|
public KeyGenerator keyGenerator() {
|
|
|
|
return new SimpleKeyGenerator();
|
|
}
|
|
}
|