在REDIS哈希HMSET中,COUNT和SEARCH是什么意思?

3
REDIS专家请帮忙。我想在redis哈希中进行计数和搜索。
我的用户数据:
| id | name    | age | country |
| 1  | jaspal  | 32  | US
| 2  | singh   | 45  | UK
| 4  | manjot  | 24  | US
| 5  | tarleen | 20  | UK
| 7  | daljeet | 30  | US
| 8  | sutdhar | 40  | US

我使用HMSET将用户数据存储在Redis中,例如:

HMSET user:1 name "jaspal"  age "32" country "US"
HMSET user:2 name "singh"   age "45" country "UK"
HMSET user:4 name "manjot"  age "24" country "US"
HMSET user:5 name "tarleen" age "20" country "UK"
HMSET user:7 name "daljeet" age "30" country "US"
HMSET user:8 name "sutdhar" age "40" country "US"

现在我希望做到以下几点:

  1. 计算哈希表"user"中记录的数量。
  2. 仅获取符合 WHERE country=US AND age BETWEEN 31 AND 40条件的记录。

一个想法:为每个国家创建一个单独的有序集合(zset)。在集合中,名称是成员,年龄是分数。这样,您就可以按年龄查询并找到特定的国家。 - akonsu
2个回答

3

仅仅使用哈希是不行的。Redis不支持通过值进行搜索;在您的情况下,您需要使用排序集合,将年龄和国家存储在分值中,用户ID存储在值中。例如:

zadd user:ages 30 1 34 2 45 3 and so on...

您可以选择所有年龄在指定范围内的用户:

zrangebyscore user:ages 30 40

对于国家,您需要使用数字表示法

您可以使用Lua脚本在Redis端交集或并集选择结果


0

要计算哈希用户中记录的数量,请使用HLEN。它返回存储在键中的哈希中包含的字段数。

HLEN user:1

它将返回“3”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接