从 Redis 哈希中获取顶级结果



我正在尝试用 Redis 编写查询以获取我的哈希键的前 2 个字段值。

基本上,当我做HVALS hashname时,我想获取添加的前 2 个字段的值(最旧的 2 个(。这有点像在 SQL 数据库中获取 TOP 2 元组。

这在雷迪斯中可能吗?

不,这是不可能的。Redis 哈希中字段和值的顺序在所有意图和目的上都是随机的(尽管从小型哈希实验中获得的经验证据(。有关元素排序,请参阅 Redis 的排序集。

更新:要回答评论中的问题,IIUC 看起来您只需使用字符串即可轻松解决它。由于 Redis 的性质,在任何给定时刻,要么有一个用户等待特定的匹配,要么为零。您可以SET matchmaking:blue username1:token密钥是否存在(即等待匹配的零用户(,如果存在,则GETDEL它。请务必使用 SET 的"NX"子命令、MULTI/EXEC 和/或 Lua 来确保这两个逻辑操作的原子性。

根据我的实验,HVALS按照您要查找的顺序返回键的值,即最旧的键优先。现在由您决定仅使用客户端程序选择前两个值,例如 HSET myhmap name "abhi"HSET myhmap email "test@test"HSET myhmap planet "earth"HSET myhmap galaxy "andromeda"HVALS myhmap将返回"abhi","test@test""earth""andromeda"

最新更新