# !/usr/bin/python3.4
# -*- coding: utf-8 -*- import redis
import time # 这里用来读取ip
def getips():
ip = []
# 读取ip
file = open("../ip/ip.txt")
ips = file.readlines()
# 将ip写入数组并加上时间戳
for item in ips:
# 标记时间戳
markedtime = int(time.time())
ip.append(item.strip() + "*" + str(markedtime))
return ip # 传入带有时间戳的ip数组
def test(ips):
# 在这里打开redis
r = redis.Redis(host='127.0.0.1', port=6379, db=0) # 删除旧的列队
r.delete("mylist") # 将ip添加进消息列队
for item in ips:
r.lpush("mylist", item) # 逐个取出和存储
# 因为要一直取所以用while
while True:
# 逐个取出
temppop = r.rpop("mylist") # 去除*号后面的东西
splitstar = temppop.decode('utf-8', 'ignore').split("*") # 得到间隔大于3秒的ip
# 当前时间
nowtime = int(time.time())
# 如果时间间隔大于3就取出来使用
if nowtime - int(splitstar[1]) >= 3:
ip = splitstar[0]
print("取出ip:" + str(ip))
else:
# 如果间隔小于3秒则重新写入列队
r.lpush("mylist", temppop)
# 跳过这次循环
continue # 这里写解析函数
# 如果消费了这个ip就逐个写入
# ...... # 逐个写入
# 标记时间戳
markedtime = int(time.time())
# 构造格式
temppush = str(ip) + "*" + str(markedtime) # 写入列队
r.lpush("mylist", temppush)
# 不知道怎么一个一个的返回
input('---' * 10)
# return ip if __name__ == '__main__':
a = test(getips())
print(a)

python-redistest的更多相关文章

  1. ELKStack入门篇(四)之Filebeat

    Filebeat是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到logstash.elasticsearch或redis等场景中进行下一步处理. 官方文档: ...

  2. 日志收集之filebeat

    一,软件介绍 Filebeat是一个轻量级日志传输Agent,可以将指定日志转发到Logstash.Elasticsearch.Kafka.Redis等中.Filebeat占用资源少,而且安装配置也比 ...

  3. 第十一章:Python の 网络编程基础(三)

    本課主題 多线程的创建和使用 消息队列的介绍 Python 操作 memached 和 redis 实战 本周作业 消息队列的介绍 对列是在内存中创建的,如果整个进程里的程序运行完毕之后会被清空,消息 ...

  4. python操作MongoDB、MySQL、Postgres、Sqlite、redis实例

    总结:除了MongoDB.redis,其他三个数据库用python来操作其实是差不多的.所有例子都很简单,实际生产环境中的数据库操作远比这复杂得多,命令也比我例子中的多得多,我这里高级一点的用法就是批 ...

  5. python的redis简单使用

    安装的Python版本 3.6.1 redis安装的2.8 安装redis模块 pip install redis 简单使用 redis-test.py import redis r=redis.Re ...

  6. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  7. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  8. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  9. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  10. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

随机推荐

  1. 在.Net Core WebAPI下给Swagger增加导出离线文档功能

    一丶前言 最近刚接触到Swagger,在github上下载了它的源码和demo学习了一遍,发现这个组件非常好用,不过不足的是它没有导出离线文档的功能,于是乎我就想给它加一个导出功能 Swagger G ...

  2. python全栈开发day117-MongoDB,pymongo

    1.MongoDB操作 使用了不存在的对象即创建该对象 1.增加: 官方不推荐写法: insert([{},{},{}]) 官方推荐写法: insertOne({}) insertMany([{},{ ...

  3. Java类的继承与方法调用的一个小问题

    public class Father { protected void server(int i){ switch (i){ case 1: methodone(); break; case 2: ...

  4. 小程序-canvas在IOS手机层级最高无法展示问题

    要求的效果: 正面: 背面: 在开发者工具 利用css 和定位实现了一个版本 .topBox.on { transform:rotateY(180deg); } .topBox { position: ...

  5. php换行和<br />互转

    使用场景:在后台处理textarea换行的时候出现了问题, textarea里面的换行就是/n, 在textarea里面是有换行效果的,但是输出到其它地方没有效果,这时候就要用到PHP的神奇的nl2b ...

  6. call_user_func 与call_user_func_array 的使用与区别

    1 call_user_func 的使用 1)使用方法直接传递值 function nowamagic($a,$b){ echo $a; echo $b; } call_user_func('nowa ...

  7. Interpreting NotifyCollectionChangedEventArgs zz

    If you’ve ever consumed INotifyCollectionChanged.CollectionChanged, then you’ve run into some inadeq ...

  8. Linux环境下Hadoop集群搭建

    Linux环境下Hadoop集群搭建 前言: 最近来到了武汉大学,在这里开始了我的研究生生涯.昨天通过学长们的耐心培训,了解了Hadoop,Hdfs,Hive,Hbase,MangoDB等等相关的知识 ...

  9. 关机,重启BAT命令

    关机命令shutdown -s -t 重启命令 shutdown -r -t

  10. React事件绑定几种方法测试

    前提 es6写法的类方法默认没有绑定this,不手动绑定this值为undefined. 因此讨论以下几种绑定方式. 一.构造函数constructor中用bind绑定 class App exten ...