1、引入docker镜像
docker pull redis
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a497a7a1a7ae2e3972785bf00573ca2b.png)
2、配置文件中指定IP地址
spring.redis.host=192.168.1.106
3、自定义序列化器
@Configuration
public class MyRedisConfig {
@Bean
public RedisTemplate<String,Employee> employeeRedisTemplate(RedisConnectionFactory redisConnectionFactory)
throws UnknownHostException {
RedisTemplate<String, Employee> employeeRedisTemplate = new RedisTemplate<>();
employeeRedisTemplate
.setValueSerializer(new Jackson2JsonRedisSerializer<Employee>(Employee.class));
employeeRedisTemplate.setKeySerializer(new StringRedisSerializer());
employeeRedisTemplate.setConnectionFactory(redisConnectionFactory);
return employeeRedisTemplate;
}
@Primary
@Bean
public RedisCacheManager cacheManager(RedisConnectionFactory redisConnectionFactory){
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
RedisCacheManager redisCacheManager;
redisCacheManager = new RedisCacheManager(RedisCacheWriter
.nonLockingRedisCacheWriter(redisConnectionFactory),
redisCacheConfiguration);
return redisCacheManager;
}
@Bean
public RedisCacheManager empCacheManager(RedisConnectionFactory redisConnectionFactory){
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext
.SerializationPair
.fromSerializer(new Jackson2JsonRedisSerializer<Employee>(Employee.class)))
.serializeKeysWith(RedisSerializationContext
.SerializationPair
.fromSerializer(new StringRedisSerializer()));
RedisCacheManager redisCacheManager;
redisCacheManager = new RedisCacheManager(RedisCacheWriter
.nonLockingRedisCacheWriter(redisConnectionFactory),
redisCacheConfiguration);
return redisCacheManager;
}
@Bean
public RedisCacheManager deptCacheManager(RedisConnectionFactory redisConnectionFactory){
RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig()
.serializeValuesWith(RedisSerializationContext
.SerializationPair
.fromSerializer(new Jackson2JsonRedisSerializer<Department>(Department.class)))
.serializeKeysWith(RedisSerializationContext
.SerializationPair
.fromSerializer(new StringRedisSerializer()));
RedisCacheManager redisCacheManager;
redisCacheManager = new RedisCacheManager(RedisCacheWriter
.nonLockingRedisCacheWriter(redisConnectionFactory),
redisCacheConfiguration);
return redisCacheManager;
}
}
4、指定CacheManager
@CacheConfig(cacheManager = "deptCacheManager")
@Service
public class DepartmentService {
@CacheConfig(cacheManager = "empCacheManager")
@Service
public class EmployeeService {