如何使用redisTemplate在redis中读取@Cacheable数据?

时间:2017-01-21 21:33:06

标签: spring redis spring-data spring-cache spring-data-redis

我正在使用@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数据吗?

万分感谢。

0 个答案:

没有答案