我正在使用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。
那我该如何处理这个案子?
任何帮助都会非常感激。
答案 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