我正在尝试在 Redis 中编写查询以获取我的哈希键的前 2 个字段值..
基本上,当我执行 HVALS hashname
时,我想获取添加的前 2 个字段(最旧的 2 个)的值。这有点像在 SQL 数据库中获取 TOP 2 元组。
这在redis中可行吗?
最佳答案
不,这是不可能的。 Redis 哈希中的字段和值的顺序对于所有意图和目的都是随机的(尽管从对小型哈希的实验中获得的经验证据)。有关排序元素,请参阅 Redis 的排序集。
更新:为了回答评论中的问题,IIUC 看起来您可以仅使用字符串轻松解决它。由于 Redis 的性质,在任何给定时刻,要么有一个用户在等待特定匹配,要么为零。如果 key 不存在(即等待匹配的用户为零),您可以 SET matchmaking:blue username1:token
和 GET
和 DEL
如果它存在的话。请务必使用 SET
的“NX”子命令、MULTI/EXEC
和/或 Lua 来确保这两个逻辑操作的原子性。
关于redis - 从 Redis 哈希中获取最佳结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44490181/