python导入导出redis数据的实现
作者:纯洁的小魔鬼 发布时间:2023-02-24 11:10:55
标签:python,导入,导出,redis
注:以String类型为例
一.导出redis某个库的数据
import redis
import json
file_path = "why.json"
redis_conn = redis.Redis(host="192.168.1.123", port=6387, password="123zxcv", db=2, decode_responses=True)
data_keys = redis_conn.keys()
all_data = {}
for i in data_keys:
all_data[i] = json.loads(redis_conn.get(i))
file_object = open(file_path, 'w', encoding="utf8")
json.dump(all_data, file_object, ensure_ascii=False)
file_object.close()
使用python向Redis批量导入数据
使用pipeline进行批量导入数据。包含先使用rpush插入数据,然后使用expire改动过期时间
class Redis_Handler(Handler):
def connect(self):
#print self.host,self.port,self.table
self.conn = Connection(self.host,self.port,self.table)
def execute(self, action_name):
filename = "/tmp/temp.txt"
batch_size = 10000
with open(filename) as file:
try:
count = 0
pipeline_redis = self.conn.client.pipeline()
for lines in file:
(key,value) = lines.split(',')
count = count + 1
if len(key)>0:
pipeline_redis.rpush(key,value.strip())
if not count % batch_size:
pipeline_redis.execute()
count = 0
#send the last batch
pipeline_redis.execute()
except Exception:
print 'redis add error'
二.导入redis某个库的数据
import redis
import json
file_path = "why.json"
redis_conn = redis.Redis(host="192.168.1.123", port=6387, password="123zxcv", db=1, decode_responses=True)
file_object = open(file_path, 'r', encoding="utf8")
all_data = json.load(file_object)
for key in all_data:
redis_conn.set(key, json.dumps(all_data[key], ensure_ascii=False))
file_object.close()
来源:https://blog.csdn.net/xyy1028/article/details/122706544


猜你喜欢
- 1.认为FindControl方法寻找的范围是给定Control的后代控件。 <form id="form1" r
- 首先,先要确定你成功安装了MySQL。1、万能启动法win+R打开运行窗口,输入 services.msc在里面找到mysql的服务名,比如
- 比较两个时间序列在图形上是否相似,可以通过以下方法:1.可视化比较:将两个时间序列绘制在同一张图上,并使用相同的比例和轴标签进行比较。可以观
- v-model指令 所谓的“指令”其实就是扩展了HTML标签功能(属性)。先来一个组件,不用vue-model,正常父子通信<!--
- 今天自己写个楼层效果,有一点烦躁,小地方犯错误。各位大神来修改不足啊!!!<!DOCTYPE html><html lan
- 代理模式Proxy模式是一种常用的设计模式,它主要用来通过一个对象(比如B)给一个对象(比如A) 提供'代理'的方式方式访问
- 后台管理配置动态路由菜单前段时间做一个后台管理项目,因为超级管理员可以给普通管理员动态更改权限,所以vue-element-admin里的写
- 运用webbrowser库中的一个函数实现自动打开浏览器:webbrowser.open(http://blog.csdn.net/ares
- substr 方法 返回一个从指定位置开始的指定长度的子字符串。 stringvar.substr(start [, length ]) 参
- 接触编程的朋友都听过正则表达式,在python中叫re模块,属于文字处理服务里面的一个模块。re里面有一个方法叫match,接下来的文章我来
- 在使用mysql的过程中,有个问题就是mysql的优化,mysql中longblob字段在5.5版本中默认的为1M。 想改变这个问题,需要注
- php操作xml最近计划写个人的小网站,一系列原因选择了用php来写,最大的问题就是虽然php很流行,但我从来没有接触过php,看了一个多星
- SQLSERVER编译与重编译编译的含义当SQLSERVER收到任何一个指令,包括查询(query)、批处理(batch)、存储过程、触发器
- 1. 从键盘输入一个整数,求 100 除以它的商,并显示输出。要求对从键盘输入的数值进行异常处理。try: n=i
- 上周想要取得iframe中的元素和js变量值,一直没取得,查资料得知:不能用$(document).ready()方法,而是要用$(&quo
- 1、微信小程序使用echarts,首先下载echarts并导入小程序项目中,因小程序后期上线对文件大小有要求,所以建议进行定制下载导入可减少
- 前言经常需要检查一个“目录或文件夹”内部有没有我们想要的文件或者文件夹,就需要我们循环迭代出所有文件和子文件夹,Python中遍历指定目录下
- Mr.Think是一个喜欢简洁的人,喜欢如诗一样的代码.不喜欢.NET的代码,就是因为经常看到同事用VS后生成出来的一段段冗长的代码.在我的
- 放到公用调用文件(如conn数据库链接文件),对所有GET或POST的数据进行过滤特殊字符串,以实现简单有效的SQL注入过滤Function
- 目录一、 环境准备:1.docker环境2.安装mariadb数据库二、ORM1.ORM简介2.django配置数据库第一种方式:第二种方式