#! /usr/bin/env python
# -*- coding: utf-8 -*-

import redis
import urllib2
class RedisConnect:
    #class member
    __redisId=""
    __host=""
    __port=""
    __db=""
    __pwd=""

#Add an element to the collection
    def setSadd(self,key,value):
        try:
            return self.__redisId.sadd(key,value)
        except Exception,e:
            print e

#Delete an element in a collection.
    def srem(self,key,member):
        try:
            return self.__redisId.srem(key,member)
        except Exception,e:
            print e

#Get the total number of elements in the collection
    def getScard(self,key):
        try:
            return self.__redisId.scard(key)
        except Exception,e:
            print e

#Get some member
    def getSrandmember(self,key,count):
        try:
            return self.__redisId.srandmember(key,count)
        except Exception,e:
            print e

#To determine whether the set in the member
    def getSismember(self,key,member):
        try:
            return self.__redisId.sismember(key,member)
        except Exception,e:
            print e

#Delete all keys    
    def delAllKey(self):
        try:
            return self.__redisId.flushdb()
        except Exception,e:
            print e

def getIp(count):
    url = "http://xvre.daili666api.com/ip/?tid=xxxxxxxxxxx&num=%d"%(count)
    req = urllib2.Request(url)
    res_data = urllib2.urlopen(req)
    res = res_data.read().split("\r\n")
    return res

def main():
    try:
        redis=RedisConnect("xxxxxxxxxx",0000,x,"xxxxxxxxx")
        count=redis.getScard("ipPool")
        if  not count:
            Ips=getIp(10000)
            for i in Ips:
                print "------Is insert ip :%s---------"%i
                redis.setSadd("ipPool",i)
                if redis.getScard("ipPool")>=1000:
                    break
        else:
            ipList=redis.getSrandmember("ipPool",500)
            for i in ipList:
                print "xxxxxxxxxxIs delete ip :%sxxxxxxxxxxx"%i
                redis.srem("ipPool",i)
            Ipss=getIp(10000)
            m=0
            while  redis.getScard("ipPool") <1000:
                print  redis.getScard("ipPool")
                print "------Is update ip :%s---------"%Ipss[m]
                redis.setSadd("ipPool",Ipss[m])
                m+=1
        print "--------------------------Update Ip Success----------------------------"

except Exception,e:
        print e
        #Delete some ip

if __name__  == "__main__":
    main()

set_ip_pool的更多相关文章

随机推荐

  1. 多线程之 CountDownLatch

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定 ...

  2. 最大连续子数和问题-homework-03

    一.说明 这次的作业做的不好,一小点怨念ing····· 首先向TA说明下,我的小伙伴“丢下”我后我不知道,以至于发现剩下我一个的时间有点晚,我机智地找到了一个3个人的小组,又叫到了一个小伙伴,但是悲 ...

  3. Windows 下整理内存工具推荐——cleanmem

    ---恢复内容开始--- cleanmem 是个不错的内存整理工具,www.xdown.com 下载有便携版提供下载. 软件有pro版和free版,一般情况下,free版够用了,没必要用pro版. p ...

  4. hdu 1443 Joseph (约瑟夫环)

    Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  5. Javascript/Jquery——简单定时器的多种实现方法

    第一种方法: <script language="javascript"> //使用setInterval间歇调用 (不建议使用该方法) $(function(){ s ...

  6. iOS 8版本信息与屏幕尺寸

    原文  http://www.cnblogs.com/smileEvday/p/iOS8.html   1.UIWindow的bounds iOS 7之前Window的bounds不会随着方向而变化, ...

  7. SQL Select的执行顺序

    1.FROM 2.ON 3.JOIN 4.WHERE 5.GROUP BY 6.WITH CUBE or WITH ROLLUP 7.HAVING 8.SELECT 9.DISTINCT 10.ORD ...

  8. [Ruby01]Class, Module, Object,Kernel的关系

    puts Class.ancestorsputs '11111111111111111111'puts Module.ancestorsputs '2222222222222222222'puts O ...

  9. JavaScript DOM对象和JQuery对象相互转换

    1.分析源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  10. BZOJ 1013: [JSOI2008]球形空间产生器sphere 高斯消元

    1013: [JSOI2008]球形空间产生器sphere Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/Judg ...