首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python-redistest

python-redistest

作者头像
机器学习和大数据挖掘
发布2019-07-02 09:34:24
3220
发布2019-07-02 09:34:24
举报
文章被收录于专栏:数据挖掘数据挖掘
# !/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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-01-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档