set_ip_pool
#! /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的更多相关文章
随机推荐
- jackson 注解的使用
在实体对象上添加 @JsonAutoDetect , 表明对该实体对象序列化成json串. @JsonAutoDetect public class User{ private int id; pri ...
- NodeJs 开源
iwebpp.io - 运行P2P Node.js web 服务,穿透防火墙,NAT https://github.com/InstantWebP2P/iwebpp.io pm 是一个轻量级的Node ...
- 第二百四十九天 how can I 坚持
竟然让我跟着他们去旅游..泡温泉,滑雪..西北坡,不去白不去. 罗娜,你别把我拉黑啊.哎,不知道咋办. 晚上玩了四局LOL,全输了,伤心. 还有今天抢票没抢到. 该怎么破,12点半正好在吃饭啊. 睡觉 ...
- jQuery基础学习8——层次选择器next()和prev()方法
$('.one + div').css("background","#bbffaa"); //和next()方法是等价的,前后关系,和prev()方法是对立的 ...
- ASP.NET面试题总结
1.ASP.NET中的身份验证有那些?你当前项目采用什么方式验证请解释ASP.NET身份验证模式包括Windows.Forms(窗体).Passport(护照)和None(无). 1.Windows身 ...
- HDU 4461 The Power of Xiangqi (水题)
题意:给定一些字母,每个字母都代表一值,如果字母中没有B,或者C,那么就在总值大于1的条件下删除1,然后比较大小. 析:没什么好说的,加起来比较就好了. 代码如下: #pragma comment(l ...
- 【JDBC】百万数据插入
使用JDBC连接数据库时,如果插入的数据量大,一条一条地插入数据会变得非常缓慢.此时,我们需要用到预处理. 查阅Java开发文档,我们可以看到: 接口 PreparedStatement 表示预编译的 ...
- <%%>与<scriptrunat=server>,<%=%>与<%#%>的区别
这些东西都是asp.net前台页面与后台代码交互过程中经常使用的,它们之间有的非常相似,又有一些不同.对比学习下,看看他们之间的联系与区别. 首先看<%%>与<scriptrun ...
- Java Thread Basic
一.Java的多线程有三种实现方式. 1.继承创建. a.定义子类,重写run方法 b.创建Thread子类的实例(即现成对象) c.调用start() 方法启动现成 特征:不可以共享变量. publ ...
- mysql 报错之创建自定义函数
I experienced this error while trying to alter one of my stored procedures remotely on a master serv ...