首页 > 解决方案 > 如何在 Redis 中添加条件(过滤器)

问题描述

我有一个这样的 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

我可以根据 Keys (1,2,3) 存储在 redis 中,但只需要获取授权的用户 (authorized==1)。

如何做到这一点?

谢谢

标签: rediskey

解决方案


您可以将 csv 放入此数据结构中。您可以使用类似的键创建哈希
user:{email}
图例如:
您可以使用类似的键创建哈希键
user:mike@gmail.com您可以对 CSV 中的每一行fname mike, lname gote, email mike@gmail.com, authorised 1
使用REDIS COMMAND

hmset user:mike@gmail.com fname mike lname gote email mike@gmail.com authorised 1

现在您可以使用密钥user:authorisation:0user:authorisation 进行设置: 1并使用命令在集合中插入值
sadd user:authorisation:1 user:mike@gmail.com
您必须为相应的授权集插入 user:{email} 的所有哈希键。

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

smembers user:authorisation:1

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

hgetall user:mike@gmail.com

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


推荐阅读