使用java中的Jedis在redis中搜索

时间:2014-09-12 21:56:39

标签: java redis jedis nosql

我正在使用jedis与java语言中的redis进行交互。

问题背景

我使用哈希来存储用户所有信息,如:

hmset user:1 name xxx email yyy age zzz
hmset user:2 name aaa email bbb age ccc

现在为了获取任何用户数据,我可以执行以下操作:

hmget user:1 name email

问题

我的问题是我想搜索名称为xxx的用户。现在在这种情况下,我不知道实际的密钥。意思是我不知道我必须打用户:1或用户:2。

那我该如何处理这个案子?

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

根据How to search in redis for hash keys?的回复,Redis是一个键值存储。因此,如果要对地图中的值执行搜索,则需要在Redis中维护手动索引或使用其他数据库。

如果您真的想使用Redis,则按名称搜索问题的可能索引是:

sadd name:xxx 1
sadd name:aaa 2

然后,您可以使用:

检索名为xxx的成员的ID
SINTER name:xxx

最后,您拥有创建地图键的所有功能:user:1