如何在Redis中添加条件(过滤器)

时间:2019-01-22 19:58:32

标签: redis key

我有这样的CSV文件:

key,fname,lname,email,authorized
1,mike,gote,mike@gmail.com,1
2,joe,doe,joe@gmail.com,0
3,mark,ding,mark@gmail.com,1

我可以基于密钥(1,2,3)存储在Redis中,但是只需要获得授权的用户(authorized == 1)。

如何实现?

谢谢

1 个答案:

答案 0 :(得分:3)

您可以在此数据结构中放入csv。您可以使用
user:{email}
之类的键创建 hashmap ,例如:
您可以使哈希键类似-
user:mike@gmail.com,其键像fname mike, lname gote, email mike@gmail.com, authorised 1
您可以对CSV

中的每一行使用 REDIS命令 hmset user:mike@gmail.com fname mike lname gote email mike@gmail.com authorised 1

现在,您可以使用键 user:authorisation:0 user:authorisation:1 进行设置,然后使用以下命令将这些值插入到设置中
sadd user:authorisation:1 user:mike@gmail.com
您必须为相应的授权集插入user:{email}的所有哈希键。

现在要获得具有相同授权级别的所有用户,您必须首先获取集合的所有成员,然后从哈希的指向中取出值。例如,从列表中获取所有授权电子邮件的值-您必须运行查询

smembers user:authorisation:1

这将返回用户的哈希值。为了从哈希表中获取信息,我们必须运行命令。

hgetall user:mike@gmail.com

这是在Redis中处理此类数据集的标准方法。