如何使用redistemplate在春季启动中获得hmget redis响应

问题描述 投票:0回答:1
redis

响应。但是我得到的响应量很小。 我能够在下方执行

Spring Boot
命令:
redis-cli

HMGET

中给我以下响应:

HMGET students "andrew"
现在,我在

redis-cli
我创建了
1) "andrew;wilson;abcSchool;900"

班,

Spring Boot
班和

@configuration

配置类:
@Component
组件类:

@RestController Controller类:

@Configuration
public class RedisConfig {

     @Bean
        public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
            RedisTemplate<String, Object> template = new RedisTemplate<>();
            template.setConnectionFactory(redisConnectionFactory);
            template.setKeySerializer(new StringRedisSerializer());
            template.setValueSerializer(new StringRedisSerializer());
            return template;
        }
    
}
我期望的响应与

@Component public class RedisDemo { @Autowired private RedisTemplate<String, Object> redisTemplate; public List<Object> getHashFields(String hashKey, String... fields) { return redisTemplate.opsForHash().multiGet( hashKey, List.of(fields) ); } } @Autowired private RedisDemo redisDemo; @GetMapping("/test/{key}/{field}") public List<Object> getHashFields(@PathVariable(name = "key")String key ,@PathVariable(name = "field")String field) { return redisDemo.getHashFields(key, field); }

但是我得到了
redis-cli


为了获得有效的响应,我应该更改什么。我关注

春季启动redis-template调用raw命令,例如hmget

我甚至试图给出原始的HMGet命令,如该问题所示。但是我无法得到正确的响应。
    

I假设,因为您使用
它注入了配置默认的重新标志
spring提供
“以字符串为重点的便利类”

enter image description here

在代码下方的try(例如,替换使用springredistempalte,然后用字符串替换对象)

1) "andrew;wilson;abcSchool;900"

[ null ]

JdkSerializationRedisSerializer
java spring-boot redis
1个回答
0
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.