第一步,将IP最大和最小值转换成数字,这个有相应的工具类
第二步很关键,就是用redis来存储这两个值,那么什么结构存那?我们选择用sortset,这个结构是有序队列,我们定义:
key:ipwrite
value:ip值
sort:ip数字
这样我们就存储好了最大值和最小值
第三部,我们拿到要比较的ip,首先转换成数字,然后我们用ranger(0,1)取出最大值和最小值,
zrangebyscore key min max [withscores][limit offset count]
返回有序集合中score介于min和max之间的元素(若不想包含=请用如 zrangebyscore zsk (1 (4表示),litmit的功能类似于分页,例:zrangebyscore zsk 0 1 withscores limit 0 2返回:
1) m5
2) 0.5
3) m1
4) 1
当然如果你不知道min和max的值可以使用-inf和+inf来替代。