往redis中批量插入数据的方法

前言

24年的时候,编写的脚本,一直没时间记录,现在趁着时间充足,记录下来。

测试工作中,有时会在性能场景中出现批量插入的预制数据条件,有时需要在redis中插入大量的测试数据,这时可以使用python读取excle进行批量插入数据的方法进行操作。

该方法使用python语言

插入方法

读取excel,然后执行代码

以下是redis插入的代码,供参考:

import  redis
import json
import xlrd

#打开excel文件
book = xlrd.open_workbook(r'文件路径')
sheets = book.sheet_names()  # 获取所有sheet表名
sheet = book.sheets()[0]  # 按索引获取第一个sheet的名称
# for sheet in sheets:
sh = book.sheet_by_name('test1')  # 打开所有的表
row_num = sh.nro ws
print(row_num)
r = redis.StrictRedis(host='ip', port=端口号, db=0, password='')
pipe = r.pipeline()
# 使用pipeline批量插入数据
for i in range(1, row_num):
    row_data = sh.row_values(i)
    print(row_data[0])
    #连接测试环境的redis
    # JSON字符串
    #data = json.dumps({"id": row_data[0],"extend": {"token": row_data[1],"id": row_data[2],"jfId": row_data[3],"name": row_data[4],"nickname": row_data[5],"mobile": row_data[6],"headPicUrl": row_data[7]}})
    data = json.dumps({"id": row_data[0],"extend": {"token": row_data[1],"id": row_data[2],"jfId": row_data[3],"name": row_data[4],"nickname": row_data[5],"mobile": row_data[6],"headPicUrl": row_data[7]}})

    #json_str = '{"id": "'+row_data[0]+'","extend": {"token": "'+row_data[1]+'","id": "'+row_data[2]+'","jfId": "'+row_data[3]+'","name": "'row_data[4]'","nickname": row_data[5],"mobile": row_data[6],"headPicUrl": row_data[7]}}'
    # 定义层级数据
    data02 = {
    row_data[8]: data,
    #"authorize:code:bededdcefbd9481f81b9ac66cf2ed4f7": "b9620974-afbf-495d-99f1-6f5e37084637"
    }
    # 设置键值对
    for key, value in data02.items():
        pipe.set(key,value)
    pipe.execute()

# 关闭连接
r.close()

删除

import redis
import json
import xlrd


book = xlrd.open_workbook(r'文件路径')  # 打开excel文件
sheets = book.sheet_names()  # 获取所有sheet表名
sheet = book.sheets()[0]  # 按索引获取第一个sheet的名称
# for sheet in sheets:
sh = book.sheet_by_name('test1')  # 打开所有的表
row_num = sh.nrows
print(row_num)
for i in range(1, row_num):
    row_data = sh.row_values(i)
    print(row_data[0])
    # 连接到本地的Redis服务器,默认端口为6379
    r = redis.StrictRedis(host='ip', port=6379, db=0,password='E718GVQGwWJ52fCkyd0oKhiQ')

    # 插入数据
    #r.set('mykey', 'myvalue')

    # 删除数据
    result = r.delete(row_data[8])

    # 检查是否成功删除
    if result == 1:
        print("数据已成功删除")
    else:
        print("数据不存在或未能删除")

查询数据量

import redis

# 创建 Redis 客户端连接
r = redis.StrictRedis(host='ip', port=6379, db=0, password='E718GVQGwWJ52fCkyd0oKhiQ')

# 获取指定数据库中的键的数量
data_count = r.dbsize()

print(f"db0 中的数据量: {data_count}")

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值