Search REDIS哈希HMSET中的计数和搜索
REDIS专家请帮忙。我想在redis散列中进行计数和搜索 我的用户数据:Search REDIS哈希HMSET中的计数和搜索,search,count,redis,hash,Search,Count,Redis,Hash,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将此用户数据存储
| 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"
现在我想要以下内容:
你不能只使用散列。Redis不支持按值搜索;在您的情况下,您需要使用来存储分数中的年龄和国家,以及值中的用户id。例如:
zadd user:ages 30 1 34 2 45 3 and so on...
然后,您可以选择指定年龄范围内的所有用户:
zrangebyscore user:ages 30 40
国家/地区也是如此(您需要使用数字国家/地区表示)
您可以使用lua脚本在redis端对select结果进行交叉或联合以计算用户使用的散列中的记录数。它返回存储在密钥处的哈希中包含的字段数
HLEN用户:1
它将返回“3”。一个想法:为每个国家创建一个单独的有序集(zset)。在集合中,姓名是成员,年龄是分数。通过这种方式,您将能够按年龄进行查询,并找到特定的国家。