【发布时间】:2020-04-22 06:40:47
【问题描述】:
我正在使用 Spring Data Redis(SDR) 开发 Redis。我想根据值(不是字段名)查询我的哈希数据。
这是我的哈希数据 -
Address address1 = Address.builder()
.city("New York")
.country("USA")
.build();
Address address2 = Address.builder()
.city("New Jersy")
.country("USA")
.build();
Address address3 = Address.builder()
.city("Ohio")
.country("USA")
.build();
Set<Address> addresses = Sets.newHashSet(address1, address2, address3);
Person person = Person.builder()
.firstname("John")
.lastname("Leo")
.address(addresses)
.build();
redisTemplate.opsForHash().putAll("employee", jacksonMapper.toHash(person));
现在我们有 API 可以通过映射键、字段名称进行查询,如下所示
Map<String, Object> entries = redisTemplate.opsForHash().entries("employee"); //query by map key
Object object = redisTemplate.opsForHash().get("employee", "address[0].city"); //query by field name
但我想按字段值查询-
查找所有以“N”开头的城市
查找与模式“U*”匹配的所有国家
感谢您提供这方面的任何帮助。
【问题讨论】:
-
@shreyas-k 你考虑过使用 RediSearch 吗?
标签: java redis jedis spring-data-redis key-value-store