python-redistest
# !/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的更多相关文章
- ELKStack入门篇(四)之Filebeat
Filebeat是轻量级单用途的日志收集工具,用于在没有安装java的服务器上专门收集日志,可以将日志转发到logstash.elasticsearch或redis等场景中进行下一步处理. 官方文档: ...
- 日志收集之filebeat
一,软件介绍 Filebeat是一个轻量级日志传输Agent,可以将指定日志转发到Logstash.Elasticsearch.Kafka.Redis等中.Filebeat占用资源少,而且安装配置也比 ...
- 第十一章:Python の 网络编程基础(三)
本課主題 多线程的创建和使用 消息队列的介绍 Python 操作 memached 和 redis 实战 本周作业 消息队列的介绍 对列是在内存中创建的,如果整个进程里的程序运行完毕之后会被清空,消息 ...
- python操作MongoDB、MySQL、Postgres、Sqlite、redis实例
总结:除了MongoDB.redis,其他三个数据库用python来操作其实是差不多的.所有例子都很简单,实际生产环境中的数据库操作远比这复杂得多,命令也比我例子中的多得多,我这里高级一点的用法就是批 ...
- python的redis简单使用
安装的Python版本 3.6.1 redis安装的2.8 安装redis模块 pip install redis 简单使用 redis-test.py import redis r=redis.Re ...
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
随机推荐
- unity一个按钮实现开和关
using System.Collections; using System.Collections.Generic; using UnityEngine; public class ButtonCl ...
- 如何从Eclipse导入github上的项目源码--转载
[转载出处声明:hil2000的专栏] 1.首先在github.com上申请一个账号,比如笔者的账号为puma0072.Eclipse需要安装egit插件,在Eclipse中选择help->Ma ...
- flexbuilder 开发工具
https://www.cnblogs.com/xuling/archive/2010/02/15/1668580.html
- lsblk
linux磁盘命令-lsblk显现磁盘阵列分组 lsblk(list block devices)能列出系统上所有的磁盘. lsblk [-dfimpt] [device] 选项与参数: -d :仅列 ...
- centos7 安装 oh my zsh
和在ubuntu 下安装十分相似(基本没区别) 安装zsh yum install zsh 改变系统bash chsh -s /bin/zsh git clone oh my zsh 项目: git@ ...
- python爬取珞珈1号卫星数据
首先登录珞珈一号数据系统查询想要的数据 利用浏览器审查元素获取包含下载信息的源码 将最右侧的table相关的网页源码copy到剪切板备用 利用python下载数据 ## utf-8 import re ...
- delphi 鼠标拖动
GetWindowRect(tgph, Rect); //获得窗体大小 setcursorpos(Rect.Left + 487, Rect.Top + 274); delay(100); mouse ...
- SpringBoot+ Mybatis 搭建
spring boot+mybatis整合 LZ今天自己搭建了下Spring boot+Mybatis,比原来的Spring+SpringMVC+Mybatis简单好多.其实只用Spring bo ...
- 真正的ddos防御之道,简单干脆有效!
话说,30G 就各种发博客 BB,唉,坦白说 ,博客园团队真心没见过世面 来 各位 先看图 啥意思呢? 就是哥的 最高防御是 600G. 没错,基本对当时的游戏没啥大的影响,10秒内恢复. 因为时间 ...
- mybatis逆向工程的注意事项,以及数据库表
1.选择性更新,如果有新参数就更换成新参数,如果参数是null就不更新,还是原来的参数 2.mybatis使用逆向工程,数据库建表的字段user_id必须用下滑线隔开,这样生成的对象private L ...