redis去重
来源:互联网 发布:mac华康新篆体 编辑:程序博客网 时间:2024/06/05 22:58
import hashlibimport redis"""利用redis的集合不允许添加重复元素来进行去重"""import configparserconfig = configparser.ConfigParser()config.read('db_conf')host = config['redis']['host']port = config.getint('redis', 'port')db = config.getint('redis', 'db')password = config.get('redis', 'password')def redis_init(): """ 初始化redis :param parasecname: :return: redis连接池 """ pool = redis.ConnectionPool(host=host, port=port, db=db, password=password) # r = redis.Redis(connection_pool=pool) r = redis.StrictRedis(connection_pool=pool) return pool, rdef sha1(x): sha1obj = hashlib.sha1() sha1obj.update(x.encode('utf-8')) hash_value = sha1obj.hexdigest() return hash_valuedef rem_redis(r, check_str, set_name): hash_value = sha1(check_str) r.srem(set_name, hash_value)def add_redis(r, check_str, set_name): """ 将check_str加入redis连接r的set_name集合中 :param r:redis连接 :param check_str:被添加的字符串 :param set_name:项目所使用的集合名称,建议如下格式:”projectname:task_remove_repeate“ :return: """ hash_value = sha1(check_str) r.sadd(set_name, hash_value)def is_new(r, check_str, set_name): """ check_str是否为set_name的新元素 新元素返回1 重复元素返回0 :param r: :param check_str: :param set_name: :return: """ hash_value = sha1(check_str)#加密,节省空间 return 0 if r.sismember(set_name, hash_value) else 1def redis_close(pool): """ 释放redis连接池 :param pool: :return: """ pool.disconnect()
阅读全文
0 0
- redis去重
- redis去重方案优化
- redis去重方案优化
- 记录redis MD5数据库入库去重
- [Python3.4]通过Redis利用BloomFilter实现数据去重
- 基于Redis的Bloomfilter去重(附Python代码)
- 去重
- 去重
- 去重
- 去重
- 去重
- 漫谈redis在运维数据分析中的去重统计方式
- 漫谈redis在运维数据分析中的去重统计方式
- BloomFilter(大数据去重)+Redis(持久化)策略
- Scrapy-redis增量爬取以及Simhash相似文档的去重
- 数组去重,json数组去重
- 数组去重,list去重
- sql去重
- Spark源码分析之Executor分析
- Android指纹识别认识和基本使用。
- php-fpm的配置和优化
- 整数的反转
- 关于视频转码后只有声音没有画面的问题
- redis去重
- 使用webstoem快速恢复覆盖和被删除文件
- 开源矩阵计算工具Eigen学习笔记(一)
- Xcode工程如何将SDK包导入
- C#接口作用的深入理解
- 异步专题
- Centos7 关闭防火墙
- ViewDragHelper 实战案例1 《QQ侧滑菜单》 SwipeLayout
- SVN检出项目没有build path