有几个网站都有用到省市地区三级结构
所以想把这数据存在redis中 方便调用
数据有
城市ID 城市名称 城市拼音 隶属省市ID
经常用到的功能
从 城市拼音 找出 隶属省市, 城市名,隶属它的市/地区
redis 是新手 哪位牛人给个靠谱的结构
等弄好 会把数据分享给大家的
@红薯
有几个网站都有用到省市地区三级结构
所以想把这数据存在redis中 方便调用
数据有
城市ID 城市名称 城市拼音 隶属省市ID
经常用到的功能
从 城市拼音 找出 隶属省市, 城市名,隶属它的市/地区
redis 是新手 哪位牛人给个靠谱的结构
等弄好 会把数据分享给大家的
@红薯
province:list => set(province_id)
province:[province_id] => hash (entry key => entity field, entry value => field value)
province:city_pinyin_list:[province_id] => set(city_pinyin)
city:[city_pinyin] => hash(entry key => entity field, entry value => field value)
city:[city_pinyin]:county_list => set(county_pinyin)
county:[county_pinyin] ……此处略,与城市实体结构相似
......
从 城市拼音 找出 隶属省市, 城市名,隶属它的市/地区:
先查找城市实体信息(城市Id、城市名称、所属省(直辖市)Id……)
HMGET city:beijing city_id city_name province_id
查找北京市包含的县(郡、区):
SORT city:beijing:county_list BY county:*->county_pinyin GET
# count:*->county_name GET county:*->city_id ASC ALPHA
用 Redis 来做这个, 会给人一种杀鸡用牛刀的感觉.
用 MySQL 就可以做到相当好了. 而且还有现成的数据.
会因为习惯和应用的不同, Redis 的结构也会完全不同,
比如说,
有的人喜欢把 "城市ID,城市名称,城市拼音,隶属省市ID"(对应SQL中的一行) 放在一起, 做在 Hash 键中.
而有些人喜欢通过 "城市ID" 来拆开, 各个字段放在不同的 String 中.
具体用哪种, 关键还是要看应用的类型.
如果经常通过城市ID去读取其中的某一字段, 那拆开会好一些.
如果经常通过城市ID去读取全部字段, 那用 Hash 会好一些.
你可以估计一下哪种类型的操作次数会更多, 就用对应的结构.
隶属于"省/市", 这个可以用 Set 集合来做, 比较灵活一些.
我也是一个Redis的初学者, 希望以后可以多多交流
MySQL,文件,人家肯定会啦.. 现在就是想尝试Redis啊.
我看用Hashes吧
Hashes
Redis Hashes are maps between string fields and string values, so they are the perfect data type to represent objects(eg: A User with a number of fields like name, surname, age, and so forth)
http://redis.io/topics/data-types