当前位置: 首页 > news >正文

redis多线程操作

今天更新一个redis多线程操作, 可直接搬运

import redis, os, threading, queue
import pandas as pd# 创建一个任务队列
task_queue = queue.Queue()def read_excel(folder_path):total_list = []for filepath, dirnames, filenames in os.walk(folder_path):for filename in filenames:file_path = os.path.join(filepath, filename)df_total = pd.read_excel(file_path)list_df = df_total['product'].values.tolist()total_list.extend(list_df)print(total_list)print(len(total_list))result_list = []for t_pro in total_list:t_pro_dict = {t_pro: '20230907'}result_list.append(t_pro_dict)# # 写入 redis# redis_obj = RedisClass('ahrefs_filter', 9)# for t_pro in total_list:# 	t_pro_dict = {t_pro: '20230907'}# 	print(t_pro_dict)# 	redis_obj.insert_redis(t_pro_dict)return result_listclass RedisClass:def __init__(self, db_key, db_index, db_host='*.*.*.*', db_port=6379, db_password='password', filter_start_index=0, filter_end_index=0):# 传入DB表名,和DB序号self.db_key = db_keyself.db_index = db_indexself.db_host = db_hostself.db_port = db_portself.db_password = db_passwordself.filter_start_index = filter_start_indexself.filter_end_index = filter_end_indexself.redis_pool = redis.ConnectionPool(host=self.db_host, port=self.db_port, password=self.db_password,db=self.db_index)self.redis_conn = redis.Redis(connection_pool=self.redis_pool)def count_redis_data(self):# 计数: 获取redis中数据数量return self.redis_conn.zcard(self.db_key)def read_redis(self):# 读取redis中全部数据if self.filter_start_index == 0 and self.filter_end_index == 0:# 如果无输入查询数量, 则全表查询self.filter_end_index = self.redis_conn.zcard(self.db_key)print('查询到的数量为: {}'.format(self.filter_end_index))res_list = self.redis_conn.zrange(self.db_key, self.filter_start_index, self.filter_end_index)return [res.decode('utf-8') for res in res_list]def read_redis_by_score(self, zset_score):# 读取redis中全部数据res_list = self.redis_conn.zrangebyscore(self.db_key, zset_score, zset_score)return [res.decode('utf-8') for res in res_list]def insert_redis(self, redis_dict):flag = Falseself.redis_conn.zadd(self.db_key, redis_dict)return flag# 生产者线程类
class ProducerThread(threading.Thread):def __init__(self, mysql_pro_info):super().__init__()self.mysql_pro_info = mysql_pro_infodef run(self):for item in self.mysql_pro_info:task_queue.put(item)print(f"Produced by {self.name}: {item}")class ConsumerThread(threading.Thread):def run(self):redis_obj = RedisClass('ahrefs_filter', 9)while True:item = task_queue.get()print(item)redis_obj.insert_redis(item)if __name__ == '__main__':# 1- 读取EXCEL中的数据, 存入redisfolder_path = r'C:\Users\admin\Desktop\0905型号'total_list = read_excel(folder_path)producer_thread = ProducerThread(total_list)producer_thread.start()for i in range(100):  # 创建100个消费者线程consumer_thread = ConsumerThread()consumer_thread.start()

相关文章:

redis多线程操作

今天更新一个redis多线程操作, 可直接搬运 import redis, os, threading, queue import pandas as pd# 创建一个任务队列 task_queue queue.Queue()def read_excel(folder_path):total_list []for filepath, dirnames, filenames in os.walk(folder_path):for fi…...

OpenCV(十七):拉普拉斯图像金字塔

1.拉普拉斯图像金字塔原理 拉普拉斯图像金字塔是一种多尺度图像表示方法,通过对高斯金字塔进行差分运算得到。它能够提供图像在不同尺度上的细节信息,常用于图像处理任务如图像增强、边缘检测等。 下面是拉普拉斯图像金字塔的原理和步骤: 构…...

OpenCL编程指南-10.2使用C++包装器API的矢量相加示例

选择OpenCL平台并创建一个上下文 建立OpenCL的第一步是选择一个平台。第2章介绍过,OpenCL使用了ICD模型,其中可以有多个OpenCL实现在一个系统上并存。类似于HelloWorld示例,这个矢量相加程序展示了选择OpenCL平台的一种最简单的方法&#xf…...

mysql数据库,字符串使用双引号““导致报错,使用单引号‘‘不报错,Unknown column ‘user-test‘ in ‘where clause‘

文章目录 一、完整报错二、报错数据三、报错原因四、解决方式1、更改执行sql2、更改sql数据校验模式(改为默认校验) 一、完整报错 > 1054 - Unknown column user-test in where clause二、报错数据 SELECT * FROM config_info WHERE config_info.da…...

[华为云云服务器评测] 华为云耀云服务器 Java、node环境配置

系列文章目录 第一章 [linux实战] 华为云耀云服务器L实例 Java、node环境配置 文章目录 系列文章目录前言一、任务拆解二、修改密码三、配置安全规则四、远程登录并更新apt五、安装、配置JDK环境5.1、安装openjdk,选择8版本5.2、检查jdk配置 六、安装、配置git6.1、安装git6.2…...

中企绕道突破封锁,防不胜防 | 百能云芯

韩国的财经媒体Business Korea最新报道指出,尽管美方在《通胀削减法案》(IRA)的补贴中排除了中国,但中国企业正通过多种方式积极应对美国在半导体和电动汽车电池领域的封锁,这包括建立合资企业、设立生产基地以及开展技…...

动手实践:从栈帧看字节码是如何在 JVM 中进行流转的

Java全能学习面试指南:https://www.javaxiaobear.cn/ 前面我们提到,类的初始化发生在类加载阶段,那对象都有哪些创建方式呢?除了我们常用的 new,还有下面这些方式: 使用 Class 的 newInstance 方法。使用…...

PEX装机

目录 一、PXE是什么? 二、PXE的组件: vsftpd/httpd/nfs tftp dhcp 三、配置vsftpd 四、配置tftp 1.安装tftp-server 2.启动tftp 五、准备pxelinx.0文件、引导文件、内核文件 1.准备pxelinux.0文件 2.准备引导文件、内核文件 六、配置dhcp …...

异地远程访问内网BUG管理系统【Cpolar内网穿透】

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…...

论文笔记:一分类及其在大数据中的潜在应用综述

0 概述 论文:A literature review on one‑class classification and its potential applications in big data 发表:Journal of Big Data 在严重不平衡的数据集中,使用传统的二分类或多分类通常会导致对具有大量实例的类的偏见。在这种情况…...

下单时如何保证数据一致性?

原创 哪吒 哪吒编程 2023-09-07 08:03 发表于辽宁 收录于合集#Redis11个 (给哪吒编程加星标,提高Java技能) 大家好,我是哪吒。 在前几篇文章中,提到了Redis实现排行榜、Redis数据缓存策略,让我们对Redis…...

【C++ Core Guidelines解析】深入理解现代C++的特性和原理

文章目录 👨‍⚖️《C Core Guidelines解析》的主要观点👨‍🏫《C Core Guidelines解析》的主要内容👨‍💻作者介绍 🌸🌸🌸🌷🌷🌷💐&a…...

Go语言高阶:Reflection反射与Files操作 详细示例教程

目录标题 一、Reflection反射1. What is reflection? 什么是反射2. Inspect a variable and find its type 检查变量并找到它的类型3. Reflect.Type and reflect.Value 反射类型和值4. Reflect.Kind 查看底层种类5. NumField() and Field() methods 字段数量和索引值方法6. In…...

谷歌seo技术流

很多外贸企业和独立站都想从Google获得免费的流量,也就是SEO流量,但是在做SEO的过程中,总会面临这样或那样的问题。米贸搜谷歌推广将这些问题总结如下: 既然SEO看起来似乎很难,但还是有很多电商公司愿意投资SEO&#x…...

ReactiveUI MVVM框架(1)-Collections

ReactiveUI MVVM框架(1)-Collections ReactiveUI使用动态数据(DynamicData)用于集合的操作。 当对动态数据集合进行更改时,会产生更改通知,通知表示为ChangeSet,里面包含了更改信息&#xff0…...

【微服务】五. Nacos服务注册

Nacos服务注册 5.1 Nacos服务分级存储模型Nacos服务分级存储模型:服务集群属性:总结: 5.2 根据集群负载均衡总结 5.3 Nacos服务实例的权重设置总结: 5.6 环境隔离namespace总结 5.7 Nacos和Eureka的对比总结 5.1 Nacos服务分级存储…...

Lnmp架构-Redis

网站:www.redis.cn redis 部署 make的时候需要gcc和make 如果在纯净的环境下需要执行此命令 [rootserver3 redis-6.2.4]# yum install make gcc -y 注释一下这几行 vim /etc/redis/6739.conf 2.Redis主从复制 设置 11 是master 12 13 是slave 在12 上 其他节…...

Python 二进制数据处理与转换

不得不说,Python能火是有原因的,物联网开发中常用的数据处理方式,Python都有内置的函数或方法,相当方便,官方文档见二进制序列类型,下面是一些示例代码 string Hello World! # 字符串转二进制数据 data …...

【LeetCode】297.二叉树的序列化与反序列化

题目 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。 请设计一个算法来实现二叉树的序列化与反序列化…...

Java HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。 HashSet 允许有 null 值。 HashSet 是无序的,即不会记录插入的顺序。 HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必…...

Noto Emoji终极指南:3种策略彻底解决跨平台表情符号显示难题

Noto Emoji终极指南:3种策略彻底解决跨平台表情符号显示难题 【免费下载链接】noto-emoji Noto Emoji fonts 项目地址: https://gitcode.com/gh_mirrors/no/noto-emoji Noto Emoji是Google开发的开源表情符号字体库,旨在为全球用户提供完整、一致…...

ElevenLabs乌尔都文TTS接入全链路解析:从API密钥配置到自然停顿优化(含3个未公开参数)

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs乌尔都文TTS接入全链路解析:从API密钥配置到自然停顿优化(含3个未公开参数) ElevenLabs 官方虽未在文档中明确标注乌尔都语(ur-PK)…...

ORB-SLAM3地图保存新思路:手把手教你将.osa地图转成PCD点云(附完整代码)

ORB-SLAM3地图数据解放指南:从封闭格式到通用点云的全链路实践 当你在昏暗的实验室调试ORB-SLAM3运行整夜后,终于得到那个珍贵的.osa地图文件时,却发现无法用熟悉的点云工具打开分析——这种挫败感或许正是促使你阅读本文的原因。作为三维视觉…...

3个核心优势:Open-Meteo如何用开源技术重构天气API的经济学模型

3个核心优势:Open-Meteo如何用开源技术重构天气API的经济学模型 【免费下载链接】open-meteo Free Weather Forecast API for non-commercial use 项目地址: https://gitcode.com/GitHub_Trending/op/open-meteo 在传统天气数据服务领域,开发者往…...

钱学森物理大一统:宇宙速度阶梯尺 全套公版正式文档(带可计算代码)

宇宙速度阶梯尺 全套公版正式文档 (无版权全开源全民通用可直接印刷发布/平台投稿/社区分发) 开篇总纲 定名:本源速度阶梯尺 核心主旨:大道至简,以地球天然标准音速为万物速度本源基底,以宇宙真空光速为速度…...

企业内网开发场景下,利用Taotoken实现大模型API的统一网关与审计

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内网开发场景下,利用Taotoken实现大模型API的统一网关与审计 在中大型企业的研发环境中,引入大模型能力…...

BookGet:构建分布式古籍数字资源采集系统的技术架构与实现

BookGet:构建分布式古籍数字资源采集系统的技术架构与实现 【免费下载链接】bookget bookget 数字古籍图书下载工具。 项目地址: https://gitcode.com/gh_mirrors/bo/bookget BookGet是一款基于Go语言开发的分布式古籍数字资源采集工具,专为历史研…...

如何快速清理Zotero重复文献:智能合并工具完整指南

如何快速清理Zotero重复文献:智能合并工具完整指南 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 你是否经常为Zotero文献库中的重…...

通过Taotoken快速为OpenClaw智能体配置统一模型接入点

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken快速为OpenClaw智能体配置统一模型接入点 对于使用OpenClaw框架构建AI智能体的开发者而言,管理多个智能体…...

TSN网络仿真入门:除了OMNeT++,这几个开源框架(NeSTiNg/CoRE4INET)到底该怎么选?

TSN网络仿真框架深度选型指南:从OMNeT生态到实战避坑 引言:当TSN遇见仿真工具丛林 在工业自动化与车载网络领域,时间敏感网络(TSN)正成为实时通信的基础设施。但部署前的验证环节往往让研究者陷入两难——直接搭建物理测试床成本高昂&#xf…...