首先看到这类提示错误,我们应该知道这个肯定是锁获取的数据不符合JSON格式
例如在Redis中我们存储的如下集合
[
{
"inviterId": 1747,
"userName": "x1**[email protected]",
"currencyId": null,
"symbol": null,
"feeAmount": 132973232.86878297748704000000,
"commissionFee": "132973232.868"
},
{
"inviterId": 447,
"userName": "1*[email protected]",
"currencyId": null,
"symbol": null,
"feeAmount": 113770242.85038540344352000000,
"commissionFee": "113770242.85"
}
]
一看便知道不符合Json的格式规范(键值),一般情况下你默认使用RedisTemplate<Object, Object>中字符串的的get方法去获取额时候,因为不符合格式,反序列化会失败。哪我们如何解决啦。添加如下的代码既可以解决问题
@Bean
public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
stringRedisTemplate.setConnectionFactory( factory );
return stringRedisTemplate;
}
我们去解析的时候注入
@Resource(name = "stringRedisTemplate")
private RedisTemplate<String, String> stringRedisTemplate;
然后使用该对象去获取值,即可正常解决该问题。
this.stringRedisTemplate.opsForValue().get("COMMON:KEY").toString();