redis - 如何在 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)。
如何做到这一点?
谢谢
解决方案
您可以将 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:0和user:authorisation 进行设置: 1并使用命令在集合中插入值
sadd user:authorisation:1 user:mike@gmail.com
您必须为相应的授权集插入 user:{email} 的所有哈希键。
现在要获取具有相同授权级别的所有用户,您必须首先获取集合的所有成员,然后从哈希的指向中取出值。例如从列表中获取所有授权电子邮件的值 - 您必须运行查询
smembers user:authorisation:1
这将返回用户的哈希值。为了从哈希中获取信息,我们必须运行命令。
hgetall user:mike@gmail.com
这是在 redis 中处理此类数据集时的标准方法。
推荐阅读
- azure-devops - 使用 Netlify CLI 创建站点
- python - 如何从 tkinter python 中的菜单栏打开 GUI
- xml - Xpath xslt 检查 2 个条件属于 2 个元素
- flutter - 在不改变容器大小的情况下将“容器”的子元素居中
- airflow - Airflow 2.0.1:在本地时区写入日志
- python - 如何使用 np.where 更改多个列值?
- java - 如何访问 Azure 的 Tomcat 日志以进行 Java 应用服务部署
- java - 如何从 xml 元素中删除属性?
- javascript - ReactJS:管理单选按钮行为
- json - 如何使用 JQ 从数组内容创建对象字段