一、信创要求
具体要求可以参考上篇文章【信创一】微服务适配TongWeb及遇到的问题 - 简书 (jianshu.com)。
书接上回,上回适配了TongWeb7,接下来我们接入TongRDS。
二、为什么使用TongRDS
- 原因一:甲方要求;
- 原因二:很多国产化缓存都是基于redis开源版的基础上改造的,TongRDS官方描述“已有应用可以不修改程序代码无侵入的更换为 RDS”
三、验证
准备:TongRDS(带的有javaclient),license可去官网联系商务获取试用版
测试:正常的springboot项目,不做任何改造,直接如下测试,可正常获输出“中国”
@Resource
private RedisTemplate redisTemplate;
@RequestMapping("/redis")
public String queryRedis() throws IOException {
redisTemplate.opsForValue().set("d","中国");
return (String) redisTemplate.opsForValue().get("d");
}
四、遇到的问题
-
问题一: 使用TongRDS提供的javaclient对缓存set('a','b')值,但是使用RedisTemplate获取不到。
A:这是由于RedisTemplate的序列化方式导致的,因为上面set的字符串,而RedisTemplate<K,V>默认的K,V均是Object,只能存放序列化后的字节数据,可以尝试使用StringRedisTemplate获取。 -
问题二:application.properties是否需要修改为rds相应属性
A:不需要,不需要做任何修改,可以从下图看到,RDS启动后也会监听6379端口(同Redis),6200是RDS端口,6379是RDS兼容了Redis的端口,可以正常像Redis一样使用