BLOG
Enjoy when you can, and endure when you must.
NOV 12, 2013/数据库
Redis学习:IP查询(二)
本文部分翻译自《Redis in Action》(Josiah L Carlson)。之前,我们利用ZSET建立了一张城市ID与起始IP地址的对应表。要查询一个IP,我们首先需要使用与之前一样的办法,即将IP转换为10进制整数。之后找到比该IP值相等或较小的最大起始IP。之前已经提到,之所以用到ZSET,就是方便这里的查询。即我们可以利用ZREVRANGEBYSCORE,通过传递START=0,NUM=1,从而实现预想的查询方法。正确获取城市ID后,我们再利用ID到城市ID与信息映射表(HASH)中查询到对应的城市信息。具体的实现代码如下:def find_city_by_ip...
NOV 12, 2013/数据库
Redis学习:IP查询(一)
本文部分翻译自《Redis in Action》(Josiah L Carlson)。利用IP定位用户以提供地方化的服务是目前Web的常用做法。使用Redis,我们可以很方便的实现该功能。对于开发,我们可以从http://dev.maxmind.com/geoip/geolite下载免费的IP数据库。这个数据库包含两个重要的文件:Geo-LiteCity-Blocks.csv和GeoLiteCity-Location.csv,分别为IP段与城市ID的映射以及ID所对应的城市信息(如市、区/周/省、国家名称等)。我们可以建立两张表,分别对应以上两个csv文件。第一张表,我们可以将其放入ZS...
1