#! /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. 【bzoj3233】【ahoi2013】找硬币

    题意: 求确定n种货币面额x1..xn满足 x1=1 且xi为xj的整数倍(i>j) 给定n个物品价格ai 求使用上面货币最少需要硬币数(不能找零) 题解: 动态规划 听说网上的题解都是搜索的做 ...

  2. 依赖包bcrypt安装Issues

    说明:本文在个人博客地址为edwardesire.com,欢迎前来品尝. 在决策树项目中,使用到了bcrypt依赖包来加密文件.在wini8(win7)部署安装这个依赖的时候容易出现出现了问题. 解决 ...

  3. UVALive 7276 Wooden Signs (DP)

    Wooden Signs 题目链接: http://acm.hust.edu.cn/vjudge/contest/127406#problem/E Description http://7xjob4. ...

  4. java多线程中的volatile和synchronized

    package com.chzhao; public class Volatiletest extends Thread { private static int count = 0; public ...

  5. keil中编译时出现*** ERROR L107: ADDRESS SPACE OVERFLOW

    解决方法: http://zhidao.baidu.com/link?url=DWTVVdALVqPtUt0sWPURD6c1eEppyu9CXocLTeRZlZlhwHOA1P1xdesqmUQNw ...

  6. linux系统日常管理

    笔者在前面介绍的内容都为linux系统基础类的,如果你现在把前面的内容全部很好的掌握了,那最好了.不过笔者要说的是,即使你完全掌握了,你现在还是不能作为一名合格的linux系统管理员的,毕竟系统管理员 ...

  7. OAuth 2.0介绍学习

    OAuth2.0是OAuth协议的下一版本,但不向后兼容OAuth 1.0即完全废止了OAuth1.0. OAuth 2.0关注客户端开发者的简易性.要么通过组织在资源拥有者和HTTP服务商之间的被批 ...

  8. JMS开发(二):深入PTP,Pub-Sub两种模式

    1.PTP模型 PTP(Point-to-Point)模型是基于队列(Queue)的,对于PTP消息模型而言,它的消息目的是一个消息队列(Queue),消息生产者每次发送消息总是把消息送入消息队列中, ...

  9. nginx 的安装

    一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl ...

  10. Andoird Studio 错误: 非法字符: '\ufeff' 解决方案。

    从网上下载一个安卓UI模板,导入到AndroidStudio的时候提示MainActivity非法字符: '\ufeff' 解决方案,细细一想编译器没报错,但编译出错,应该是隐蔽字符BOM的问题,于是 ...