python集合去重_python redis连接 有序集合去重

# -*- coding: utf-8 -*-

import redis

from constant import redis_ip, redis_db, redis_pw, logger, redis_zset_clean_date, redis_zset_name, \

move_file_lm

pool = redis.ConnectionPool(host=redis_ip, db=redis_db, password=redis_pw)

# pool = redis.ConnectionPool(db=6, password=redis_pw)

rr = redis.Redis(connection_pool=pool) # # 客户端StrictRedis=Redis 合并了

pipe = rr.pipeline(transaction=True) # 批量操作, 遇到异步容易出错, 可以不使用, 直接用 rr 连接对象,一次一个添加

def distinct_md5(date, eml_md5, eml_path, redis_fail_path):

#

# pipe.zadd(redis_zset_name, eml_md5, date)

# pipe.zadd(redis_zset_name, {date: eml_md5}, nx=True) # nx 只插入,存在的值不会修改其分数

# pipe.zadd(redis_zset_name, {date: eml_md5})

pipe.zadd(redis_zset_name, {eml_md5: date})

return pipe.execute()[0] # 1 添加, 0 没添加

# pipe.zcard('eml_md5_zset') # 查看总个数

def del_redis_md5(n, m): # 按照分数值进行删除

try:

pipe.zremrangebyscore(redis_zset_name, n, m)

except Exception as e:

logger.warning("删除Redis缓存中md5值失败: {},".format(e))

return

pipe.execute()

# return

# return pipe.execute()[0]

def clean_redis_zset(md5_score):

if md5_score <= redis_zset_clean_date:

md5_score += 31

md5_clean_score = md5_score - redis_zset_clean_date

del_redis_md5(md5_clean_score - 0.5, md5_clean_score + 0.5) # 清理Redis上的md5 闭区间

# print(distinct_md5(redis_zset_name, "qwe", 2, "sdfsd", "sdfsdf"))

#print(distinct_md5(27, "qweqwe","sdfsd", "sdfsdf"))

# print(del_redis_md5(redis_zset_name, 1, 10))

posted on 2019-08-04 14:49 宋喜阳 阅读(...) 评论(...) 编辑 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值