redis多级存储及查询

本文探讨了如何设计Redis数据结构以存储多级关系,并针对全国、省级和市级数据查询提出三种方案。方案1通过key/value实现,但查询效率低下;方案2采用hash+key/value,查询效率较优但网络IO开销大;方案3通过优化进一步减少网络IO,提高查询速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

如何设计redis的数据结构,使用redis存储多级关系并快速查询
假设:市是最后一级单位(如果是区县也同理)
1).查询全国的数据?
2).查询四川省的数据?
3).查询成都市的数据?

方案
方案1:
将“context_prefix_国家_省_市”作为key,value保存我们要查询的数据,这样便于保存  

example:

key                                                     value
gdp_中国_四川省_成都市                                  avg=97&sum=1800
gdp_中国_四川省_绵阳市                                  avg=30&sum=60
gdp_中国_广东省_广州市                                  avg=150&sum=3600
gdp_中国_河北省_保定市                                  avg=90&sum=2000

点评:但是查询的话只能模糊查询,效率很差,不推荐(key/value实现)

方案2:
1).将所有国家存到hash,hash中的国家名是key,value是这个国家对应的hash的key  
2).将这个国家的所有省存到hash,省名字是key,value是这个省所对应的hash的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值