gpt4 book ai didi

redis - 基于其成员的特定哈希值的查询集

转载 作者:可可西里 更新时间:2023-11-01 11:00:37 26 4
gpt4 key购买 nike

这在大多数数据库中很容易,但不确定如何在 Redis 中执行此操作。所以这里是我如何将成员添加到集合中:

 redis.sadd("usersRandom", userID);
redis.hmset("users:"+userID, "socketID", socket.id, "hangoutId",hangoutIds, "language",languageName);
  • 集合usersRandom是一组用户
  • 此集合中的每个 user 都存储了三个哈希值 - socketIDhangoutIdlanguage

我想执行这个:

 redis.spop("usersRandom");

但是,我只想弹出具有特定 language 值的用户。


我想出的两种方法是:

  1. 返回集合 usersRandom 的所有成员,然后自己在 language 键上匹配它们 - 然后弹出。

  2. 根据语言创建不同的集合。所以我有很多集合,例如 usersRandom_englishusersRandom_spanish(这些变量名可能需要一些工作)。这看起来比较困惑,但也许这是使用 Redis 的最佳方式。

有更好的方法吗?

最佳答案

2 是正确的方向。您可以考虑对所有语言使用一个排序集(假设每个用户只有一种语言)来存储用户 ID——使用分数作为粗略的语言指标(例如,英语是 1 分,西类牙语是 2 分……)。这将允许您按分数(语言)进行范围以获得相关的 ID。

关于redis - 基于其成员的特定哈希值的查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25293403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com