spring - RedisTemplate - 哈希通过键集获取多个条目

标签 spring redis

我使用 spring 的 RedisTemplate。

我在 redis 中有一个哈希。

我想使用模板查询 redis,以获取其键在特定键集中的所有条目。

我注意到了方法:

Map<Object, Object> entries = redisTemplate.opsForHash().multiGet(HASH_NAME, keySet);

但是,不幸的是,这个方法只返回值,没有匹配的键。

我也可以这样做:

Map<Object, Object> entries = redisTemplate.opsForHash().entries(HASH_NAME);
for(Object key : keySet){
    System.out.println(entries.get(key));
}

但这意味着我将从 redis 获取所有条目到我的本地机器,并迭代它们。

难道我没有更好的方法吗?

最佳答案

如果您使用的是 RedisTemplate,则可以使用 opsForHash().entries(H key) 获取所有哈希(键和值)。

例如……

Map messageGroupMetadata = redisTemplate.opsForHash().entries(H key);

另外需要设置RedisTemplate序列化器来完成这个操作。

redisTemplate.setHashKeySerializer(new StringRedisSerializer());
redisTemplate.setHashValueSerializer(new StringRedisSerializer());

关于spring - RedisTemplate - 哈希通过键集获取多个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33258509/

相关文章:

spring - Caused by : org. springframework.dao.IncorrectResultSizeDataAccessException: 不正确的结果大小:Spring Data Redis

Spring JMS CachingConnectionFactory 似乎不会在异常时重新连接

java - Hibernate Envers 不使用 SpringMVC 配置在审计表中写入任何内容

java - Spring Boot 请求头返回空值

Redis cli删除多个key

sorting - Redis:将多个 HSET 排序集分组并汇总为一个排序集

go - 使用 BLPOP 处理 Redis 队列会导致单元测试中出现竞争条件?

java - @Validated 服务无法 Autowiring 自身

java - 需要帮助才能使 Spring MVC 项目与 IntelliJ IDEA 一起使用

Redis 服务器在启动时使用所有 RAM