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"
现在我想要以下内容:
WHERE country=US AND age BETWEEN 31 AND 40
。答案 0 :(得分:3)
你只能用哈希来做到这一点。 Redis不支持按值搜索;在您的情况下,您需要使用sorted sets来存储分数和用户ID的年龄和国家/地区。例如:
zadd user:ages 30 1 34 2 45 3 and so on...
您可以选择所有处于指定年龄范围内的用户:
zrangebyscore user:ages 30 40
和国家相同(您需要使用数字国家/地区代表)
您可以使用lua脚本在redis端交叉或联合选择结果
答案 1 :(得分:0)