我正在使用@Cacheable将数据缓存到redis中。
@CacheConfig(cacheNames =" configDao")
完美无缺。
现在我想构建API以使用redisTemplate直接读取/更新/删除redis中的数据。
如果我使用redisTemplate.opsForValue()。get(" configA")来获取特定值,它可以正常工作,但我想使用扫描或范围操作来获取configDao中的所有数据。
我尝试了redisTemplate.opsForZSet()。range(" configDao~keyts",0,-1),还 redisTemplate.opsForZSet()。scan(" configDao~key",ScanOptions.NONE) 但有例外失败: 2017-01-21 13:27:04 ERROR 2252896 [http-nio-8080-exec-6] osbwsErrorPageFilter - 由于异常而导致从请求[/ cache]转发到错误页面[无法读取JSON:无法识别的令牌&#39 ; configA':期待(' true',' false'或' null') 在[来源:[B @ 778c300c; line:1,column:69];嵌套异常是com.fasterxml.jackson.core.JsonParseException:无法识别的令牌' configA':期待(' true',' false'或' null& #39) 在[来源:[B @ 778c300c; line:1,column:69]] org.springframework.data.redis.serializer.SerializationException:无法读取JSON:无法识别的令牌' configA':期待(' true',' false'或& #39;空') 在[来源:[B @ 778c300c; line:1,column:69];嵌套异常是com.fasterxml.jackson.core.JsonParseException:无法识别的令牌' configA':期待(' true',' false'或' null& #39) 在[来源:[B @ 778c300c; line:1,column:69] 在org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer.deserialize(GenericJackson2JsonRedisSerializer.java:130) 在org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer.deserialize(GenericJackson2JsonRedisSerializer.java:109) 在org.springframework.data.redis.serializer.SerializationUtils.deserializeValues(SerializationUtils.java:50) 在org.springframework.data.redis.serializer.SerializationUtils.deserialize(SerializationUtils.java:58) 在org.springframework.data.redis.core.AbstractOperations.deserializeValues(AbstractOperations.java:207) 在org.springframework.data.redis.core.DefaultZSetOperations.range(DefaultZSetOperations.java:105) 引起:com.fasterxml.jackson.core.JsonParseException:无法识别的令牌' configA':期待(' true',' false'或' null& #39) 在[来源:[B @ 778c300c; line:1,column:69] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidToken(UTF8StreamJsonParser.java:3528) 在com.fasterxml.jackson.core.json.UTF8StreamJsonParser._handleUnexpectedValue(UTF8StreamJsonParser.java:2686) at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._nextTokenNotInObject(UTF8StreamJsonParser.java:878) 在com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:772) at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3834) at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3783) at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2929) 在org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer.deserialize(GenericJackson2JsonRedisSerializer.java:128) ...省略了119个常用帧
redis中的数据: - redis在configDao~key中存储configDao的密钥。 ZRANGE" configDao~键" 0 -1 1)" configA" 获取配置 " [\" model.Configuration \" {\"名称\":\" configA \" \"值\":\" 804 \"}]"
有人可以帮忙告诉我如何使用redisTemplate在redis中读取@Cacheable数据吗?
万分感谢。