Skip to content

Commit ddb3c50

Browse files
committed
♻️ 调整缓存由序列化改为 json 格式,[ISSUE#57](xkcoding#57)
1 parent 23a5cba commit ddb3c50

File tree

3 files changed

+32
-3
lines changed

3 files changed

+32
-3
lines changed

spring-boot-demo-cache-redis/README.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,18 @@ public class RedisConfig {
148148
template.setConnectionFactory(redisConnectionFactory);
149149
return template;
150150
}
151+
152+
/**
153+
* 配置使用注解的时候缓存配置,默认是序列化反序列化的形式,加上此配置则为 json 形式
154+
*/
155+
@Bean
156+
public CacheManager cacheManager(RedisConnectionFactory factory) {
157+
// 配置序列化
158+
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
159+
RedisCacheConfiguration redisCacheConfiguration = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
160+
161+
return RedisCacheManager.builder(factory).cacheDefaults(redisCacheConfiguration).build();
162+
}
151163
}
152164
```
153165

@@ -327,7 +339,7 @@ public class UserServiceTest extends SpringBootDemoCacheRedisApplicationTests {
327339
*/
328340
@Test
329341
public void getAfterSave() {
330-
userService.saveOrUpdate(new User(4L, "user4"));
342+
userService.saveOrUpdate(new User(4L, "测试中文"));
331343

332344
User user = userService.get(4L);
333345
log.debug("【user】= {}", user);

spring-boot-demo-cache-redis/src/main/java/com/xkcoding/cache/redis/config/RedisConfig.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
22

33
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
44
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
5+
import org.springframework.cache.CacheManager;
56
import org.springframework.cache.annotation.EnableCaching;
67
import org.springframework.context.annotation.Bean;
78
import org.springframework.context.annotation.Configuration;
9+
import org.springframework.data.redis.cache.RedisCacheConfiguration;
10+
import org.springframework.data.redis.cache.RedisCacheManager;
11+
import org.springframework.data.redis.connection.RedisConnectionFactory;
812
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
913
import org.springframework.data.redis.core.RedisTemplate;
1014
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
15+
import org.springframework.data.redis.serializer.RedisSerializationContext;
1116
import org.springframework.data.redis.serializer.StringRedisSerializer;
1217

1318
import java.io.Serializable;
@@ -41,4 +46,16 @@ public RedisTemplate<String, Serializable> redisCacheTemplate(LettuceConnectionF
4146
template.setConnectionFactory(redisConnectionFactory);
4247
return template;
4348
}
49+
50+
/**
51+
* 配置使用注解的时候缓存配置,默认是序列化反序列化的形式,加上此配置则为 json 形式
52+
*/
53+
@Bean
54+
public CacheManager cacheManager(RedisConnectionFactory factory) {
55+
// 配置序列化
56+
RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig();
57+
RedisCacheConfiguration redisCacheConfiguration = config.serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(new StringRedisSerializer())).serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
58+
59+
return RedisCacheManager.builder(factory).cacheDefaults(redisCacheConfiguration).build();
60+
}
4461
}

spring-boot-demo-cache-redis/src/test/java/com/xkcoding/cache/redis/service/UserServiceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void getTwice() {
4444
*/
4545
@Test
4646
public void getAfterSave() {
47-
userService.saveOrUpdate(new User(4L, "user4"));
47+
userService.saveOrUpdate(new User(4L, "测试中文"));
4848

4949
User user = userService.get(4L);
5050
log.debug("【user】= {}", user);
@@ -62,4 +62,4 @@ public void deleteUser() {
6262
userService.delete(1L);
6363
}
6464

65-
}
65+
}

0 commit comments

Comments
 (0)