码迷,mamicode.com
首页 > 其他好文 > 详细

Redis使用sortedset缓存IP段数据

时间:2018-08-13 14:02:48      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:数据库查询   有一个   where   bubuko   sql   百度   准备   数据结构   数据库   

    我们原来的业务中,有很多地方需要解析用户IP的信息,刚开始是通过新浪、百度这些第三方的接口来解析IP信息,后来发现调用这些接口频繁时会被禁用一小段时间。不得已只得将数据存到我们的数据库中,表结构大致如下图,大家一看应该就明白那些字段的意思。

 技术分享图片

      查询得SQL大致是:SELECT * FROM IPInfo WHERE IPIntStart<=IP地址转int AND IPIntEnd>IP地址转int,共45万条数据,加上索引查询效率还可以,能满足日常业务查询。

      最近有一个数据清洗的任务,需要在日志入库的时候就要解析其IP信息并保存,这个时候使用数据库查询效率就太低了,我们准备将这些数据存到redis中。由于使用时必须进行范围查询,所以这里的数据结构只能用sortedset了,使用IPIntStart作为score,而查询时只需要查出IP小于等于sortedset中score的第一条数据即可。

       redis查询命令如下:       

ZREVRANGEBYSCORE   IpSet IP地址转int值 0 LIMIT 0 1

      

Redis使用sortedset缓存IP段数据

标签:数据库查询   有一个   where   bubuko   sql   百度   准备   数据结构   数据库   

原文地址:https://www.cnblogs.com/focus-lei/p/9466814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!