Redis使用sortedset緩存IP段數據

    咱們原來的業務中,有不少地方須要解析用戶IP的信息,剛開始是經過新浪、百度這些第三方的接口來解析IP信息,後來發現調用這些接口頻繁時會被禁用一小段時間。不得已只得將數據存到咱們的數據庫中,表結構大體以下圖,你們一看應該就明白那些字段的意思。redis

 

      查詢得SQL大體是:SELECT * FROM IPInfo WHERE IPIntStart<=IP地址轉int AND IPIntEnd>IP地址轉int,共45萬條數據,加上索引查詢效率還能夠,能知足平常業務查詢。數據庫

      最近有一個數據清洗的任務,須要在日誌入庫的時候就要解析其IP信息並保存,這個時候使用數據庫查詢效率就過低了,咱們準備將這些數據存到redis中。因爲使用時必須進行範圍查詢,因此這裏的數據結構只能用sortedset了,使用IPIntStart做爲score,而查詢時只須要查出IP小於等於sortedset中score的第一條數據便可。數據結構

       redis查詢命令以下:       spa

ZREVRANGEBYSCORE   IpSet IP地址轉int值 0 LIMIT 0 1
相關文章
相關標籤/搜索